自分用勉強メモ『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 交差検証の紹介