こちらの記事にあるようにDatabricksアシスタントの進化が止まらないわけで。
以前、こちらの記事で書いていたように、データ分析の文脈では相当AIアシスタントの意義があるのでは無いかと思っているのです。
前回は可視化して終わりだったのですが、今回はより対話的にアシスタントを活用してみます。1行もコードを書かずに探索的データ分析(EDA: Exploratory Data Analysis)をトライしてみます。
データの読み込み
Databricksにはサンプルデータがあるので、そちらをPandasデータフレームに読み込んで表示します。区切り文字がセミコロンなのでその辺りもプロンプトで指示しています。
プロンプト
/dbfs/databricks-datasets/wine-quality/winequality-white.csvにあるファイルの最初の100行をpandasデータフレームに読み込んでdisplayで表示してください。ファイルの区切り文字は;です
レスポンス
import pandas as pd
df = pd.read_csv('/dbfs/databricks-datasets/wine-quality/winequality-white.csv', sep=';', nrows=100)
display(df)
以上のコードを使用すると、指定されたファイルの最初の100行がpandasデータフレームとして読み込まれ、display関数を使用して表示されます。ファイルの区切り文字は;と指定されています。
データの説明
プロンプト
dfの構造を説明してください
レスポンス
DataFrame 'df'の構造は以下の通りです:
- カラム数: 12 (fixed acidity, volatile acidity, citric acid, residual sugar, chlorides, free sulfur dioxide, total sulfur dioxide, density, pH, sulphates, alcohol, quality)
- 行数: 100
- カラムのデータ型: カラムごとに異なるデータ型があります。
- データ内容: 'df'はホワイトワインの品質データを含んでいます。各行はワインの特性を示し、品質は最後の列に表示されます。カラムにはワインの属性(酸度、揮発性酸度など)が含まれており、それぞれの属性に対する品質が評価されます。
このDataFrameは、ワインの特性と品質に関する情報を分析するために使用できます。
何気にすごいです。これ。
可視化
プロンプト
dfを可視化したい
レスポンス
データフレーム 'df' を可視化するために、PandasとMatplotlibを使用できます。
以下のコードを使用して、各列のヒストグラムを表示することができます。
import matplotlib.pyplot as plt
# カラムのリストを取得
columns = df.columns
# 各カラムのヒストグラムを表示
for col in columns:
plt.figure(figsize=(8, 6))
plt.hist(df[col])
plt.title(col)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
今回のデータのカラムは英語なのでmatplotlibで問題ないのですが、こちらで書いたように日本語の場合は文字化けするので、plotlyやseabornなどを使ったほうがいいです。
プロンプト
dfをseabornで可視化したい
レスポンス
Pandasデータフレーム 'df' をSeabornで可視化するためには、Seabornのグラフィカルな機能を使用してプロットを作成する必要があります。
以下のコードを使用して、各カラムの相関関係をヒートマップで可視化することができます。
import seaborn as sns
sns.heatmap(df.corr(), annot=True, cmap="coolwarm")
このコードにより、データフレーム 'df' の属性間の相関関係をヒートマップとして表示することができます。
また、以下のコードを使用して、各属性における品質の分布を箱ひげ図で可視化することもできます。
plt.figure(figsize=(10, 6))
sns.boxplot(data=df.drop("quality", axis=1))
plt.xlabel("Attribute")
plt.ylabel("Value")
plt.title("Distribution of Attributes")
plt.show()
データの概観が分かってきたので特定の特徴量に着目してみます。ここではplotlyを使います。
プロンプト
dfのdensityとresidual sugarの散布図をplotlyで可視化したい
レスポンス
以下のコードを使用して、Pandasデータフレーム 'df' の 'density' と 'residual sugar' の散布図をPlotlyで可視化することができます。
import plotly.express as px
fig = px.scatter(df, x='density', y='residual sugar')
fig.show()
このコードにより、指定した2つのカラム('density' と 'residual sugar')の値を散布図として表示します。Plotlyのインタラクティブ性により、グラフをズームしたり、ツールチップでデータポイントの詳細情報を表示することもできます。
ただし、事前に適切なPlotlyの設定やパッケージのインストールが必要な場合があります。必要な場合は、%pip install plotly などのセルを使用してプロットリブラリをインストールしてください。
プロンプト
dfのqualityをplotlyでヒストグラムとして可視化したい
レスポンス
以下のコードを使用して、Pandasデータフレーム 'df' の 'quality' 列をPlotlyでヒストグラムとして可視化することができます。
import plotly.express as px
fig = px.histogram(df, x='quality')
fig.show()
このコードにより、'quality' 列の値の分布をヒストグラムとして表示することができます。グラフはPlotlyのインタラクティブな特性を備えており、ズームやツールチップを使用して詳細を探索することができます。
なお、Plotlyを使用する前に適切なパッケージのインストールが必要な場合があります。必要な場合は、%pip install plotly のようにセルを使用してプロットリブラリをインストールしてください。
機械学習の取り組みにおいては、予測対象の目的変数とそれに寄与する説明変数の関係性を理解することも重要です。
プロンプト
dfのqualityとその他の変数の相関をseabornで可視化したい
レスポンス
以下のコードを使用して、Pandasデータフレーム 'df' の 'quality' と他の変数の相関をSeabornで可視化することができます。
import seaborn as sns
import matplotlib.pyplot as plt
# 品質とその他の変数の相関を計算
corr_matrix = df.corr()
# 相関ヒートマップを表示
plt.figure(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap="coolwarm")
plt.title("Correlation Heatmap")
plt.show()
このコードにより、'quality' と他の変数の相関係数を表すヒートマップが表示されます。ヒートマップの各セルの色は、相関の強さを表しています。正の相関は赤で表示され、負の相関は青で表示されます。
相関ヒートマップを使用することで、'quality' と他の変数との間の関係性を直感的に把握することができます。
データプロファイル
ここまではステップバイステップでやってきましたが、データプロファイルの作成を指示することもできます。
プロンプト
dfのデータプロファイルを表示
レスポンス
データプロファイルを表示するためには、pandas-profilingというライブラリを使用することができます。以下のコードを使用して、データフレームdfのデータプロファイルを表示します。
import pandas_profiling as pp
# データフレームのデータプロファイルを作成
profile = pp.ProfileReport(df)
# データプロファイルを表示
display(profile)
このコードを使用すると、データフレームdfのデータプロファイルが生成され、表示されます。データプロファイルには、データの要約統計、欠損値の割合、相関関係、ヒストグラム、カテゴリカル変数の値の頻度などが含まれます。また、重い処理になる場合は実行に時間がかかることもあります。
実際の操作を録画した動画はこちらです。
Happy AI-powered EDA!