「機械学習によるデータ分析に興味はあるけど、難しそう・・・」
「データ分析にあまりコストをかけることはできない・・・」
このような場合には、この記事の内容が参考になります。
この記事では、誰でも簡単にできる機械学習によるデータ分析について解説しています。
本記事の内容
- 誰でも簡単にできる機械学習によるデータ分析
- ChatGPT + Noteableによるデータ分析の実践
それでは、上記に沿って解説していきます。
誰でも簡単にできる機械学習によるデータ分析
機械学習によるデータ分析は、もうプロだけのモノではありません。
誇大広告ではなく、本当に誰でもできるようになりました。
ここで言う誰でもは、データサイエンティストやエンジニア以外でもと言う意味です。
難しいアルゴリズムを理解する必要はありません。
また、Pythonのコードを書く必要もありません。
正直、もうこのような本を読む必要がないかもしれません。
もちろん、機械学習やデータ分析に全く無知では厳しいかもしれません。
しかし、それでも何とかなる可能性すらあると言えます。
そんな可能性すら抱かせてくれるのが、ChatGPTです。
正確には、ChatGPTとそのプラグインであるNoteableになります。
Noteableについては、次の記事で説明しています。
誰でも簡単にできる機械学習によるデータ分析では、Noteableの利用が必須です。
そのため、Noteableを利用できるようにしておきます。
以下では、誰でも簡単に機械学習によるデータ分析ができることを説明します。
説明と言うよりは、実践したログに近いです。
ChatGPT + Noteableによるデータ分析の実践
誰でも簡単に試せるように、データはオープンなモノを利用します。
機械学習によるデータ分析と言えば、ボストンの住宅価格データセットですね。
![](https://self-development.info/wp-content/uploads/2023/06/image-69.png)
Noteableのプラグインが有効であることを確認して、次のようにプロンプトを入力します。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
scikit-learnを利用して、ボストンの住宅価格データセットを読み込んでください。
次のように返答が表示されます。
![](https://self-development.info/wp-content/uploads/2023/06/image-70.png)
ChatGPTからNoteableに対して、次の名称でノートブックを作成するようにリクエストされました。
このことは、一つ目の「Used Noteable」をクリックして確認できます。
![](https://self-development.info/wp-content/uploads/2023/06/image-71.png)
そして、二つ目の「Used Noteable」ではPythonコードが含まれていることを確認できます。
![](https://self-development.info/wp-content/uploads/2023/06/image-73.png)
このPythonコードは、ChatGPTが考えたコードです。
このコードをNoteableに渡していることを確認できます。
そして、その渡されたコードの実施状況はNoteable上で確認可能です。
![](https://self-development.info/wp-content/uploads/2023/06/image-74.png)
「こちら」リンクをクリックします。
Noteableのページが開いて、作成指示した名称のノートブックを確認できます。
![](https://self-development.info/wp-content/uploads/2023/06/2f81b22712f4baeed464a56aa0f630fd.jpg)
そして、Pythonコードが実行されていることを確認可能です。
あと、コードを実行した結果も。
ChatGPTとNoteableに関係において、このような処理が行われています。
とりあえず、この関係を頭に入れておいてください。
これ以降は、ChatGPTだけで説明を進めます。
では、さっそくChatGPTに機械学習をさせましょう。
単刀直入に次のプロンプトを入力します。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
最も精度の高い予測モデルを教えてください。
こんなプロンプトにもChatGPTはちゃんと返答してくれます。
![](https://self-development.info/wp-content/uploads/2023/06/image-75.png)
ChatGPTの回答は、勉強になりますね。
人間の場合、ここまで丁寧に回答をしてくれるかどうか微妙です。
アルゴリズムについて、オススメを聞いてみます。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
どのアルゴリズムがオススメですか?
理由を含めて、選択肢を提示してくれています。
![](https://self-development.info/wp-content/uploads/2023/06/image-76.png)
チマチマするのは面倒なんで一気にやらせましょう。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
上記4つをすべて試してください。
AI相手だと平気で無茶な指示を出せるのですよね。
この指示にはさすがに少し時間がかかります。
![](https://self-development.info/wp-content/uploads/2023/06/image-77.png)
セッションが切れたようですが、自動で対応したようです。
このような動きは、人工知能という感じがします。
肝心の結果は、以下となっています。
- 線形回帰 (Linear Regression): 平均二乗誤差 (MSE) 37.13
- 決定木 (Decision Tree): 平均二乗誤差 (MSE) 36.43
- ランダムフォレスト (Random Forest): 平均二乗誤差 (MSE) 21.53
- 勾配ブースティング (Gradient Boosting): 平均二乗誤差 (MSE) 18.95
RMSEで表記してもらいましょう。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
RMSEで表示してください。
- 線形回帰 (Linear Regression): 平均二乗根誤差 (RMSE) 5.83
- 決定木 (Decision Tree): 平均二乗根誤差 (RMSE) 5.86
- ランダムフォレスト (Random Forest): 平均二乗根誤差 (RMSE) 4.44
- 勾配ブースティング (Gradient Boosting): 平均二乗根誤差 (RMSE) 4.20
次に、モデルの最適化をお願いしてみましょう。
具体的なことは言わず、ざっくりとした物言いで。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
最適化できませんか?
ここでも、ChatGPTは丁寧かつ勉強になる回答をくれています。
![](https://self-development.info/wp-content/uploads/2023/06/image-78.png)
実施する最適化は、ハイパーパラメータチューニングであることを定義しています。
一般的には、次の二つが一般的に行われているハイパーパラメータチューニングということです。
- グリッドサーチ(Grid Search)
- ランダムサーチ(Random Search)
そして、ハイパーパラメータチューニングに時間がかかることを教えてくれてます。
「よろしいですか?」と、確認までしてくれるのですね。
もちろん、ここはOK。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
よろしいです。
そうすると、次のように表示されます。
![](https://self-development.info/wp-content/uploads/2023/06/image-79.png)
先に言っておくと、お知らせはしてくれません。
そのため、Noteableのノートブックで進捗を確認することをオススメします。
処理が終わったようであれば、次のように確認します。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
終わりましたか?
終わっていれば、次のように表示されます。
![](https://self-development.info/wp-content/uploads/2023/06/image-80.png)
ハイパーパラメータチューニングの結果は、精度が下がっています。
そのことについて聞いてみます。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
ハイパーパラメータチューニングした方が、RMSEが下がっているのですか?
これも冷静かつ丁寧に回答してくれます。
人間同士なら、ちょっとした言い合いにもなりかねません。
![](https://self-development.info/wp-content/uploads/2023/06/image-81.png)
折角提案してくれているので、「ベイズ最適化」をやってもらいましょう。
AIが相手なら、遠慮なく指示できますね。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
ベイズ最適化を試してください。
ただ、セッションはしばしば切れるようです。
![](https://self-development.info/wp-content/uploads/2023/06/image-82.png)
ベイズ最適化は、結構時間がかかります。
![](https://self-development.info/wp-content/themes/cocoon-master/images/man.png)
終わりましたか?
処理中に確認したら、次のように回答されます。
![](https://self-development.info/wp-content/uploads/2023/06/image-84.png)
処理完了後(6分12秒の処理時間)に確認したら、次のように表示されます。
![](https://self-development.info/wp-content/uploads/2023/06/image-85.png)
かなり改善されましたね。
こんなふうにChatGPTが相手であれば、ガンガンと指示を出せます。
自分で実行する場合でも、ここまで軽やかには動けません・・・
しかし、AIが相手だと遠慮も躊躇もありません。
以上、ChatGPT + Noteableによるデータ分析の実践を説明しました。