【Python】🐍機械学習やろうよ!機械学習で😱困ったことと私の解決方法【サンプル有】【第0回】
Pythonでバカが出たぞ!
それ私です。
この😈地獄をあなたに無料でスキルシェア♬
お世話になっております。
合同会社ムジンケイカクプロ 代表ムジンです。
とりあえず、センスなしノンプログラマーの私でも、言語的にはそれほど困らないPython。
Pythonってプログラミング言語があるんですよ。
よくPython関連のマニュアルを読めば動くまではいいのだけれど。
そこで困ったのではなくて、、、
😱画像認識やりたくない
別に画像認識をやりたくないのに、サンプルが画像認識ばかり。
本もそんな感じ。
画像を分類したいんじゃなくて、次は○が出るか✕が出るかを知りたい。
実際のビジネスの現場で遭遇した機械学習の例は、アンケート分析が多い。
アンケート分析のサンプルより、圧倒的に画像認識の話が多い。
Irisというアヤメの分類があるが、これもサンプルが溢れている。
これも見るだけでイライラしていた時期がございます。
AI博士のお話を間接的に伺ったことがあるのですが、「その先にいかない人が多い」そうです。
意味はいろいろ含んでいると思いますが、、、
機械学習を動かすところまではいくし、数学的に理解もある人達が、実務利用の突っ込んだ所となると、あまり活躍できない状態は見て知っていたので、私はそれをイメージしました。
実際は、画像認識から学習を進めると、応用が効くようになりますが、そもそもやりたくないものをやる理由がない。
今、有権者の皆様に伝えたいのは、データ作りであります。
ぱっと手元でデータを作るの。
これができると、大きなデータでエラーが出た時に、小さいデータを手元でぱっと作って、機械学習モデルを試せる。
上級者からは、もっといい方法があるわ!そんなん当たり前だろ!と言われそうですが、独学の人ってハマると思うんですよね。
もしかして私だけかも!
🤓私の解決方法
まず小さいデータを作ります。
この小さいデータを作るところが浮かばなかった。
NumPyであっという間に数列を作れるのだけど、初見ではこんなもんがなんの役に立つんだよ感だった。
いきなり機械学習を動かす所にいってしまって、結果は出るけれど、では実際に自分のデータを分析するとなった時に、応用が効かない。
この状態を脱するために、NumPyの扱いは、その後の作業を楽にしてくれる。
Colaboratory へようこそ - Colaboratory
機械学習環境がPCにない方はこちらから。
Googleアカウントでログインするだけで、機械学習できます。
#これは魔法の呪文でそのまま唱える
import pandas as pd
import numpy as np
#データフレームという入れ物の中に、0から3(4個の数字)までの数字で、2列2行の形で、数字を入れる
df = pd.DataFrame(np.arange(4).reshape(2, 2))
print(df)
プリントするとこれ。
最左列は通し番号、インデックス。
最上部はカラム名。
0 1
0 0 1
1 2 3
エラーが出る方法
#これは魔法の呪文でそのまま唱える
import pandas as pd
import numpy as np
#エラーが出る 0から2までの3つの数字で、2列2行の形でエラー。
#右下の数字が足りないから作れない?
df = pd.DataFrame(np.arange(3).reshape(2, 2))
print(df)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-26-6a5e08296f44> in <module>()
4 #エラーが出る 0から2までの3つの数字で、2列2行の形でエラー。
5 #右下の数字が足りないから作れない?
----> 6 df = pd.DataFrame(np.arange(3).reshape(2, 2))
7 print(df)
ValueError: cannot reshape array of size 3 into shape (2,2)
練習して、エラーが出る出ないを理解すると、
#これは魔法の呪文でそのまま唱える
import pandas as pd
import numpy as np
#データフレームという入れ物の中に、0から6までの数字で、3列2行の形で、数字を入れる
df = pd.DataFrame(np.arange(6).reshape(3, 2))
print(df)
0 1
0 0 1
1 2 3
2 4 5
ここまでOK!
df = pd.DataFrame([['○',100,50],['○',80,50],['✕',4,50]],
columns=['答え', '点数', '平均'],
index=['Aさん', 'Bさん', 'Cさん'])
print(df)
答え 点数 平均
Aさん ○ 100 50
Bさん ○ 80 50
Cさん ✕ 4 50
インデックスとカラムの対応を覚えたことで、手元でダミーデータを作れるようになっています。
前はいちいちCSVからやっていたけど、Python上、Google Colaboratory上でダミーデータを作れるので、かなり作業効率が上がりました。
この場合
答えの部分を予測する感じで、手元でダミーデータを作っていますが、仮定が大事なんだと思うんです。
機械学習って。
この表を見ると、80点以上で答えが○なんじゃないかと。
その仮定が正しいか否か。
棄却できるか否かみたいなことでいいんじゃないかと。
上記のサンプル
いつもお読みいただき、ありがとうございます。 書くだけでなく読みたいので、コメント欄で記事名入れてもらうと見に行きます。