非エンジニア・Python初学者のために
~AI・機械学習が得意な非エンジニアが運営~
Python

scikit-learnで線形回帰分析 【Python 回帰分析②】

本気で学ぶなら優秀なエンジニアから学びたい。

助手 ミルク
助手 ミルク
前回はPythonのNumpyを使って,回帰分析に必要な近似曲線を作りましたね!!➡Python Numpyで回帰分析【そもそも回帰分析とは?具体例でわかりやすく解説 】

そうですね!でも近似線を書いただけじゃ、CreepyNutsさんの正確なCD価格はわからなかった…これじゃあ買ってもらないよね…。
トレンドぱぱ
トレンドぱぱ

助手 ミルク
助手 ミルク
うん。当然そうね。さあ今日も分析しなさい!!働きなさい!馬車馬のように。

…一応虎でやらせてもらってるんですけど。
トレンドぱぱ
トレンドぱぱ

前回、『回帰分析』ともそもそも何かということと、Numpyを使った回帰分析について書きました。

➡Python Numpyで回帰分析【そもそも回帰分析とは?具体例でわかりやすく解説 】

単回帰と重回帰の違いや線形回帰と非線形回帰の違いなど、細かい内容についても言及しています。

実際にCreepyNutsさんのCD価格を予想するために、単回帰分析を実施した結果がこちらです!!

今回は更に詳細な分析を行うために、『scikit-learn』という機械学習に特化したライブラリを使って、予想価格を数値として導き出すところまで実践していきます!!

読んで得する人は??Python scikit-learnで回帰分析をしたい方は必見

 

 

今回はPythonのscikit-learnを使って回帰分析を実践します!!

 

前回も書きましたが,回帰分析は機械学習エンジニアやデータサイエンティスト必ずと言っていほどぶちあたる壁なので、読んで損はないはずです。☟☟☟

 

 

  • Pythonを使って単回帰分析を行うことで,回帰分析イメージを掴みたい方



  • 機械学習、AI系のエンジニア・データサイエンティストを志す方



  • Pythonの”scikit-learn”これ『サイキットラーン』と読みます.ギリ知ってた方 

 

 

助手 ミルク
助手 ミルク
scikit-learnっていう名前がかっこいい!!いかにも機械学習って感じ。

 

 

科学系の学習??みたいなニュアンスだよね!!私にぴったり!!
トレンドぱぱ
トレンドぱぱ

 

 

助手 ミルク
助手 ミルク
…まずは鏡を見て頭の中で画像処理を実行しなさい。


 

 

 

Numpyでの単回帰分析【前回の復習】

 

 

助手 ミルク
助手 ミルク
まずはイメージを掴むために前回の復習からですね!!

 

 

Numpyを使った分析結果ですね!!ほらCreepyNutsさんのCD…早く買わないと価格が急騰しちゃうよ!?
トレンドぱぱ
トレンドぱぱ

 

 

 

前回の復習です。Numpyを使って単回帰分析をやってみました。ここでは線形回帰と非線形回帰の近似線を書いてます!!

 

 

 

まずはコードから☟☟☟

 

 

 

 

結果のグラフがこちら☟☟☟

 

 

 


助手 ミルク
助手 ミルク
線形と非線形の近似線は引けているけど、肝心の数値が出ていないわね。これじゃあまだ正確な予想になっていないわね。

 

 

いや…そもそも価格関係なしにレアだからなくなっちゃうかもしれないのに…”(-“”-)”
トレンドぱぱ
トレンドぱぱ

 

 

助手 ミルク
助手 ミルク
黙って分析して数値を出しなさい!!

 

 

 

 

 

scikit-learn 線形単回帰分析でざっくりと価格推移を予測

 

 

それではCreepyNutsさんのCD価格を予測し,数値として出力しいきます!

 

 

今回はskit-learnを使用し,線形単回帰分析を行っていきます!!

 

 

線形だから一次式,単回帰だから1次元ね!!
助手 ミルク
助手 ミルク


 

 

 

コードはこちらのようになります。☟☟☟

 

 

 

 

重要なコードについて解析します.

 

 

 

#線形単回帰



  • from sklearn import linear_model 

    skit-learnの線形解析用のモジュールをインポートします.



  • clf = linear_model.LinearRegression()

    ⇒clfという変数に回帰式をあてはめ分析します.xが経過日数のみの1次元なので,線形単回帰分析となります.




  • clf.fit(x2,y) # 予測モデルを作成

    ⇒分析した結果をから算出される近似線を生成します.

 

 

 

ここまでで算出した値を用いればこんなグラフが書けます.

 

 

 

 

 

 

青が実際の値、黒が線形の近似式です!!これはNumpyで計算したのと同じ結果ですね!!

 

 

 

助手 ミルク
助手 ミルク
も・ち・ろ・ん これだけじゃないわよね?

 

 

きっちり予想価格を出しますよ!!
トレンドぱぱ
トレンドぱぱ

 

 

それでは予想価格を算出する上での最重要コード説明します!!

 

 

  • print(“回帰係数= “, clf.coef_)

  • print(“切片= “, clf.intercept_)

  • print(“決定係数= “, clf.score(x2,y))

 

 

それぞれ,ラベルをつけてありますが,”回帰係数” ”切片” ” 決定係数”を表示させます.

 

 

 

結果はこのようになります!!

 

 

  • 回帰係数= [65.37941176]



     
  • 切片= 311.9044117647058



  • 決定係数= 0.06085489711467662
 
 
 
 
 
 
 
 
今回の場合、線形回帰分析なので、近似線は直線であり1次式”y=ax+b”で予測ができます!!
 
 
 
 
 
 
回帰係数は a にあたり、切片は b にあたります!!
 
 
 
 
 
 
 
今回は ”30日経過時”x の ”価格”y を予想してみます。従って算出方法は
 
 
 
 
 
 
 
y = 65.37941176 × 30 + 311.9044117647058
 
 
 
 
 
 
 
となり、計算結果は少数点以下を切り捨て 2273円でした!!
 
 
 
 
 
 

助手 ミルク
助手 ミルク
なるほどねえ~やるじゃない!!…1つ質問なんですが、決定係数ってなんですか??


 

 

ぎくっ!!決定係数はですね…予測の精度を表していまして…0~1の間で推移します。1に近いほど正確な予測という意味を持っています…
トレンドぱぱ
トレンドぱぱ

 

 

 

助手 ミルク
助手 ミルク
え!!?じゃあ0.06085489711467662って全然ダメじゃない!!なんとかならないの!?

 

 

だってサンプル点数が少ないんだもん…当然精度は落ちるよ…こういう場合は非線形回帰分析をしなきゃ…っっ!しまった!!
トレンドぱぱ
トレンドぱぱ


 

 

助手 ミルク
助手 ミルク
ふふふ。虎だけに尻尾を出したわね。しっかり掴んだわよ。笑
非線形回帰分析が終わるまでCDはお預けね!!


 

ううう…鬼畜め…。窮鼠猫を噛むって言葉を教えてやるからな~次回のブログ楽しみにしとけよ。
トレンドぱぱ
トレンドぱぱ


 

 

いやっネズミって。虎だろお前。ネコ科だろ。分析してはよブログ書け。
助手 ミルク
助手 ミルク


 

 

Pythonで単回帰分析や機械学習を学ぶには?動画と本で独学できる!!

Pythonの基礎の基を独学かつ無料で学ぶために,私はYoutubeの動画を参考にしました!➡Python学習の始め方【プログラミング初心者入門編】

さらに、回帰分析などの機械学習については書籍で学びました。私は文系の高卒でほぼ素人から学びましたが、十分に独学で対応できる内容でした。☟☟☟

Python機械学習プログラミング 達人データサイエンティストによる理論と実践/SebastianRaschka/VahidMirjalili/クイープ【合計3000円以上で送料無料】

価格:4,320
(2019/8/25 22:15時点)
感想(0件)

まとめ

  • Pythonのライブラリであるskit-learnを使うことで回帰分析が簡単にできる.

  • 線形単回帰分析の結果から、関数にあてはめることで簡単に予測ができる。

  • R指定さん応援してます!!(CD欲しい)

今回プログラミングに使ったPythonのライブラリはANACONDAというディストリビューションを使うことで簡単にインストールできちゃいます☟

”ANACONDA”でPythonの機械学習やデータ分析を効率化【インストール方法と使い方】

エンジニアやブログに興味がある方はこちらもどうぞ♪♪

エンジニア×ブログ PDCAを回せば最強の副業に!【転職しなくても大丈夫!?】

より正確な分析、予測を行うために非線形単回帰分析を行った結果はこちら!!

➡Python NumpyとScikit-learnで非線形単回帰分析【 r2_scoreで決定係数を導く】

座右の銘は明日は明日の風が吹く。Kgrneerでした♪

スポンサーリンク

PVアクセスランキング にほんブログ村
Pythonランキング