a

Pythonではじめる機械学習

Anaconda

大規模データ処理、予測解析、科学技術計算向けのPythonディストリビュージョン

含まれるライブラリ

  • NumPy
  • SciPy
  • matplotlib
  • IPython
  • Jupyter Notebook
  • scikit-learn

NumPy : ナンパイ

主な機能

クラス

ndarry : (n-dimensional)多次元配列
… 要素は全て同じ型

NumPy配列ndarrayのスライス : [start:stop:step]

import numpy as np

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l[4:8])
# [4, 5, 6, 7]

print(l[-5:-2])
# [5, 6, 7]

print(l[::-1])
# [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

データセットのロード

: データセットの読み込み

from sklearn.datasets import load_iris
iris_dataset = load_iris()
# irisオブジェクトは辞書に似たBunchクラスのオブジェクトでキーと値を持つ
print("keys: {}".format(iris_dataset.keys()))

type(iris_dataset['data'])
# numpy.ndarray

shape

: ndarrayの構造を確認する

iris_dataset['data'].shape
# (150, 4)

train_test_split

: 75%-25%でtrain-testデータを分ける

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
  iris_dataset['data'], iris_dataset['target'], random_state=0)

SciPy : サイパイ

主な機能

  • 高度な線形代数ルーチン
  • 数学関数の最適化
  • 信号処理
  • 特殊な数学関数
  • 統計分布
  • 疎行列 : scipy.sparse



matplotlib : マットプロットリブ

主な機能

  • グラフ描画ライブラリ



IPython : アイパイソン




Jupyter Notebook : ジュパイター・ノートブック

ブラウザベースのインタラクティブなプログラミング環境




scikit-learn : サイキットラー

主な機能

  • 機械学習のためのライブラリ
  • NumPy,SciPyに依存する
  • 入力をNumPy配列で受け取る

機械学習モデル

全てのscikit-learnの機械学習モデルは、Estimatorと総称される個別のクラスに実装される。
k-最近傍法(k-Nearest Neighbors : ニアリスト ネィボァ)のクラス分類アルゴリズムは、neighborsモジュールのKNeighborsClassifierクラスに実装されている。

KNeighborsClassifier

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)

fit

訓練セットからモデルを構築する

knn.fit(X_train,y_train)

predict

予測する

X_new = np.array([[5,2.9,1,0.2]])

prediction = knn.predict(X_new)
print(prediction)
#[0]
print("Predicted target name: {}".format(
  iris_dataset['target_names'][prediction]))
# Predicted target name: ['setosa']

score

モデルの評価

y_pred = knn.predict(X_test)
print(y_pred)
# [2 1 0 2 0 2 0 1 1 1 2 1 1 1 1 0 1 1 0 0 2 1 0 0 2 0 0 1 1 0 2 1 0 2 2 1 0 2]  # モデルの評価結果

print("Test set score: {:.2f}".format(np.mean(y_pred == y_test)))
# Test set score: 0.97

print("Test set score: {:.2f}".format(knn.score(X_test,y_test)))
# Test set score: 0.97

pandas : パンダス

主な機能

  • データ変換、解析
  • pandasのDataFrameはテーブルのようなもの

DataFrame

ndarrayをDataFrameに変換する

iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)

pd.plotting.scatter_matrix

pd.scatter_matrix
: ペアプロットを作成する関数
ペアプロット : 全ての組み合わせ可能な特微量の組み合わせをプロットする

iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
grr = pd.plotting.scatter_matrix(iris_dataframe, c= y_train, figsize=(15,15), marker='0', hist_kwds={'bins': 20}, s=60, alpha=.8, cmap=mglearn.cm3)

mglearn :










TMP

bunch