自分用勉強メモ『Scikit-learn活用レシピ80+』第一章

単なるメモです。

1.1  はじめに

1.2 Numpyの基礎

Numpy配列の形状と次元

Numpyのブロードキャスト

Numpyの初期化とdtype

np.zeros((5,2)) で、すべてが0の5x2行列を生成
(.onesですべて1, .emptyですべて空)

np.ones((配列), dtype=np.int)で整数型の指定
(np.floatで小数点型)


インデックス

配列の指定方法
array[ : , 5]のようにコロンを使うと、「すべてを選択」の意味
(これなら6列目のすべての行について(つまりは6列目を)抜き出す)


ブーリアン配列

array[条件式]でその条件を満たすものだけを取得


算術演算

.method名 (axis=0)で列(方向)についてmethodを適用
.method名 (axis=1)で行(方向)についてmethodを適用


NaN値


1.3 Irisデータセットを読み込む

1.4 Irisデータセットを可視化する

2つに分類するものを二値分類(binary classification)と呼び、複数の場合を多クラス分類(multi classification)とよぶ

1.5 irisデータセットをPandasで可視化する

pd.DataFrame(array, columns=カラム名)でデータフレーム(配列に行タイトルと列タイトルがついたやつ)を生成。scikit-learnで扱うにはこの形式

DataFrame[列指定].hist(bins=数値)で、その列のヒストグラム(縦軸は個数、横軸が実測値)を生成。
(指定する数値は横軸の値を何分割するか)

1.6 Numpyとmatplotlibを使ってプロットする

plt.figure()
plt.subplot(211) #下のplotの位置を指定
plt.plot()
plt.subplot(212) #下の行のscatterの位置を指定
plt.scatter()
で複数個のプロットを横や縦に並べられる。カッコ内の数値がそれで最初の2文字は何行x何列に並べるか(今回は2x1)、3つ目の数値はその何個目かを示す。

1.7 最も小さな機械学習レシピ: SVM分類

from sklearn.model_selection import train_test_split
train_test_split(X, y, test_size=テストデータ数の割合, random_state=乱数のシード値)
で分割できる。(実際にはX_train, X_test, y_train, y_test=としてそれぞれに代入)

from sklearn.metrics import accuracy_score
accuracy_score(y_test, y_pred)
で精度を測定できる。(どれだけの割合の分類が正解したか)

1.8 交差検証の紹介



データサイエンス・機械学習を勉強し、記事にするための書籍代などに利用したいと考えています。サポートいただけると嬉しいです。