見出し画像

【Python】🐍機械学習やろうよ!機械学習で😱困ったことと私の解決方法【サンプル有】【第0回】

Pythonでバカが出たぞ!
それ私です。
この😈地獄をあなたに無料でスキルシェア♬

お世話になっております。
合同会社ムジンケイカクプロ 代表ムジンです。

画像1

とりあえず、センスなしノンプログラマーの私でも、言語的にはそれほど困らないPython。

Pythonってプログラミング言語があるんですよ。
よくPython関連のマニュアルを読めば動くまではいいのだけれど。
そこで困ったのではなくて、、、

😱画像認識やりたくない

別に画像認識をやりたくないのに、サンプルが画像認識ばかり。
本もそんな感じ。

画像を分類したいんじゃなくて、次は○が出るか✕が出るかを知りたい。

実際のビジネスの現場で遭遇した機械学習の例は、アンケート分析が多い。
アンケート分析のサンプルより、圧倒的に画像認識の話が多い。

Irisというアヤメの分類があるが、これもサンプルが溢れている。
これも見るだけでイライラしていた時期がございます。

AI博士のお話を間接的に伺ったことがあるのですが、「その先にいかない人が多い」そうです。

意味はいろいろ含んでいると思いますが、、、

機械学習を動かすところまではいくし、数学的に理解もある人達が、実務利用の突っ込んだ所となると、あまり活躍できない状態は見て知っていたので、私はそれをイメージしました。

実際は、画像認識から学習を進めると、応用が効くようになりますが、そもそもやりたくないものをやる理由がない。

画像2

今、有権者の皆様に伝えたいのは、データ作りであります。
ぱっと手元でデータを作るの。
これができると、大きなデータでエラーが出た時に、小さいデータを手元でぱっと作って、機械学習モデルを試せる。

上級者からは、もっといい方法があるわ!そんなん当たり前だろ!と言われそうですが、独学の人ってハマると思うんですよね。

もしかして私だけかも!

🤓私の解決方法

まず小さいデータを作ります。

この小さいデータを作るところが浮かばなかった。
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点以上で答えが○なんじゃないかと。
その仮定が正しいか否か。
棄却できるか否かみたいなことでいいんじゃないかと。

上記のサンプル

次回、【第1回】🐍Pythonで機械学習やろうよ!機械学習環境のセットアップ

いつもお読みいただき、ありがとうございます。 書くだけでなく読みたいので、コメント欄で記事名入れてもらうと見に行きます。