機械学習の基礎

Pythonで学ぶMachine Learningによる時系列データ解析

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

まずデータを確認する

array.shape
(10, 5)
array[:3]
array([[ 0.735528  ,  1.00122818, -0.28315978],
       [-0.94478393,  0.18658748, -0.00241224],
       [-0.74822942, -1.46636618,  0.69835096]]) 
Pythonで学ぶMachine Learningによる時系列データ解析

まずデータを確認する

df.head()
       col1      col2      col3
0  0.735528  1.001228 -0.283160
1 -0.944784  0.186587 -0.002412
2 -0.748229 -1.466366  0.698351
3  1.038589 -0.171248  0.831457
4 -0.161904  0.003972 -0.321933
Pythonで学ぶMachine Learningによる時系列データ解析

データを可視化する

期待どおりの内容であることを確認してください。

# Using matplotlib
fig, ax = plt.subplots()
ax.plot(...)

# Using pandas
fig, ax = plt.subplots()
df.plot(..., ax=ax)
Pythonで学ぶMachine Learningによる時系列データ解析

Scikit-learn

Scikit-learn は Python で最も人気のある機械学習ライブラリです

from sklearn.svm import LinearSVC
Pythonで学ぶMachine Learningによる時系列データ解析

scikit-learn 用データの準備

  • scikit-learn が要求するデータ構造:

    (samples, features)

  • データが少なくとも2次元であることを確認してください

  • 第1次元がサンプルであることを確認してください

Pythonで学ぶMachine Learningによる時系列データ解析

データの形状が正しくない場合

  • 軸を入れ替えた場合:
array.T.shape
(10, 3)
Pythonで学ぶMachine Learningによる時系列データ解析

データの形状が正しくない場合

  • 軸が不足している場合は .reshape() を使用します:
array.shape
(10,)
array.reshape(-1, 1).shape
(10, 1)
  • -1 は残りの値でその軸を自動的に補完します
Pythonで学ぶMachine Learningによる時系列データ解析

scikit-learn でモデルを学習する

# Import a support vector classifier
from sklearn.svm import LinearSVC

# Instantiate this model
model = LinearSVC()

# Fit the model on some data
model.fit(X, y)

y の形状は (samples, 1) であることが一般的です

Pythonで学ぶMachine Learningによる時系列データ解析

モデルを調べる

# There is one coefficient per input feature
model.coef_
array([[ 0.69417875, -0.5289162 ]])
Pythonで学ぶMachine Learningによる時系列データ解析

学習済みモデルで予測する

# Generate predictions
predictions = model.predict(X_test)
Pythonで学ぶMachine Learningによる時系列データ解析

練習しましょう!

Pythonで学ぶMachine Learningによる時系列データ解析

Preparing Video For Download...