A Day in the Life

ChatGPT の Noteable プラグインで Iris データセットを分析する

先程書いたOpenCALMのデータはいくらなんでもデータが少なすぎだったので、みんな大好き世界で1億回は分析されてきたであろうIris(あやめ)のデータセットを Noteable で分析させてみる。と思ったった通りの結果だったのだけど、グラフ描画やいろんなアルゴリズムを試してもらう、というコードもサクッと書いてくれたのでめちゃ便利感あったので📝。


標準統計量の出力はまぁそうだよね、という感じだけど、ペアプロット描画はいつもドキュメント読みながら、みたいな感じなるので、それを target (品種)ごとに色分けして、かつ seaborn で綺麗に描画してくれてポイント高し。

"target 以外のデータを使って、target を予想するモデルを作りたいです。どのようなアルゴリズムで予想モデルを作ると良いでしょうか?noteableを使って回答して下さい。" という指定だけで、8:2 にtrain/testを分割、5つのsklearnのアルゴリズムの実装を書いて、実際の結果まで表示、というのが便利であった。いちいち自分で書くの面倒だからねぇ。今回はすべて100%の精度だったけど、アルゴリズムごとに精度が違ったら、何故そのような結果になったのかも問えば多分教えてくれる。

なおNotableで自動作成されたnotebookコードはこんな感じ。

from sklearn.model_selection import train_test_split

X = iris_df.drop('target', axis=1)
y = iris_df['target']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
X_train.shape, X_test.shape, y_train.shape, y_test.shape
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

models = [
    ('Logistic Regression', LogisticRegression()),
    ('Decision Tree', DecisionTreeClassifier()),
    ('Random Forest', RandomForestClassifier()),
    ('SVM', SVC()),
    ('KNN', KNeighborsClassifier())
]

results = []

for name, model in models:
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    accuracy = accuracy_score(y_test, y_pred)
    results.append((name, accuracy))

results
[('Logistic Regression', 1.0),
 ('Decision Tree', 1.0),
 ('Random Forest', 1.0),
 ('SVM', 1.0),
 ('KNN', 1.0)]

この結果をChatGPTが解りやすく返答してくれている。


続いてクラスタリング & 次元削減での視覚化。地味に自分で書くとドキュメント見つつになるので面倒なんだけど、これらもサクッと。最初PCAでの次元削減だったので、t-SNEだとどうなる?といえばそのグラフがシュッと出てきて便利だ。

クラスタリングして次元削減(PCA / t-SNE)結果描画はこんな感じ。


ChatGPT は自分が知らない未知のデータは、FewShot できるとはいえ、ちゃんと分析できない。そこを notebook を使って実行しつつ、その結果を持って ChatGPT 経由で対話しながら引き出すことができる、というのはいま時点の ChatGPT の弱点をうまく補完しつつ使えるサービス、というわけで Noteable すげーと改めて感じた。

そして、データ分析している方々は「ああ、またチュートリアルIrisね」という感じで分析したいと思わないだろうから、Iris データセットを自発的にまた分析したいなんて日が来るなんて驚きである。

記事の一覧 >

関連するかもエントリー

Keras を使わずに TensorFlow 2 を使い素朴な全層結合ニューラルネットワークを作る
TensorFlow では、高レベルAPIであるKerasを使うことで、簡単にニューラルネットワークのモデル作成~訓練、その他NNで行いたい様々なことを実現できる。しかしながら、自分のようなNN初心者にとっては何をやってるか解らないで使ってしまっていたため、簡単な順伝播型のNNを...
TensorFlow では、高レベルAPIであるKerasを使うことで、簡単にニューラルネットワークのモデル作成~訓練、その他NNで行いたい...
ChatGPT の Noteable + WebPilot プラグインで、OpenCALM の14Bモデルが登場したらの性能予測を notebook を作成しながら、予想モデル作成・グラフ描画をする
ChatGPT 上で対話しながら notebook 作成ができる Noteable Plugin すごい、というのを見かけたので ChatGPT (GPT4) で使ってみたら、思っていた以上にすごかったので✍。ちょっとした分析は notebook 自体をAIに書いてもらいつつ、n...
ChatGPT 上で対話しながら notebook 作成ができる Noteable Plugin すごい、というのを見かけたので ChatG...
gzip + kNN のテキスト分類で BERT 超え論文 "Low-Resource" Text Classification: A Parameter-Free Classification Method with Compressors を実装し試す
最近公開された論文 “Low-Resource” Text Classification: A Parameter-Free Classification Method with Compressors (Jiang et al., Findings 2023) は、gzip で...
最近公開された論文 “Low-Resource” Text Classification: A Parameter-Free Classif...