回帰分析とは④

こんにちは!EMです^^

 

今日も回帰分析シリーズを解説していきたいと思います!

 

Machine Learning with Scikit-Learn

現在、私たちはとっても恵まれた環境の中におります。

なんと前回話した最急降下法、アルゴリズムごとに初めからコーディングする

必要はないんです!他の誰かが既に構築済みなんです!

その為、third party packagesといわれる予め作られたパッケージを使っていきます。

とても人気があるのはScikit-Learnというパッケージです。

 

 

import sklearn as sk

from sklearn import model_selection, metrics, linear_model, datasets, 

           feature_selection, preprocessing

 

 

 

このデータに適合するモデルを構築するには、まず、linear_modelを使い

適切な手法を駆使してモデルを定義します。

このメソッドを使用する中で、いくつかのオプションがあります。

(リストの種類については、こちらをご覧ください。)

 http://scikitlearn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html

 

今回は、デフォルトをそのまま選びます。 これで、メソッドを呼び出し

(データに適合していない)モデルを変数に入れていきます。

 

linear_regression_model = sk.linear_model.LinearRegression()
 
 
次に、モデルを自分たちのデータに適合させる必要があります。
近似を行うときは、独立変数を数あるリストから1つのリストにリシェイプする作業をしていきます。
それぞれの内側のリストはデータポイントを表し、リストの内容はそのポイントの機能になります。
適切な形式のデータを取得すれば.fit()メソッドを使用して
従属変数と独立変数の関係を学習できます。
 
 
x = x.reshape(-1,1)
linear_regression_model.fit(x, y)
 
 
#The bias term.
bias = linear_regression_model.intercept_

#The coefficient, notice it returns an array with one spot for each feature
coefficient = linear_regression_model.coef_[0]

print('Bias:', bias)
print('Coefficients:', coefficient)

# Plot outputs
plt.scatter(x,y,  color='red')
Y_model = coefficient*x + bias
plt.plot(x, Y_model, color='blue', linewidth=3)

plt.show()
 

f:id:tennisfashionista:20210125002153p:plain

 

前のモデルの精度スコアを見つけたい場合は、次のように実行します。

 
print("Score on data model was fitted to:", linear_regression_model.
score(x.reshape(-1,1),y))
 
〈output〉
Score on data model was fitted to: 0.5220701109050432
 
 
このモデルは、これまで見たことのないデータにはあまり適合しませんでした。
現実世界の中の生データは、どちらのソースからも同じように発生する可能性が高い場合、
モデルは1番最良の推定量ではなく、元のデータセットに過剰適合(overfit)するでしょう。
(これは線形回帰で見た過剰適合に似ています)
 
 
 

ちなみに皆様に朗報です!

私今まで知らなかったんですが、CodeCampさんが無料で5回分無料レッスンを

されているらしいです、、、!

私が他のオンラインスクールで機械学習のコースを受講した際は

グループレッスンで約2倍のお値段を払ったので

完全マンツーマンでこのお値段は超良心的だなと思います。。。

 

 

 

ぜひ気になる方は無料体験もされてるみたいなので、一度WEBサイトを見てみてくださいね。

データ分析は時代が変化しても、必ず重宝される分野だと思っているので

プロから基礎を学ぶのは、本当に超効率的な自己投資だと思います。

 

 

 
 
次回以降、この考えをさらに深く説明するために実際のデータセットも見ていこうと思います。
 
 
最後まで読んで頂きありがとうございました^^