無意義なつぶやき

渋谷ではたらくエンジニアブログ。

scikit-learnで線形回帰分析

大炎上しながらも大学院を修了し、
4月から社会人をしています。
まだ研修中ですが、本配属後はwebアプリケーションエンジニアです。

またそれとは別に最近趣味でデータ分析をしています。
絶賛勉強中なので今日は線形回帰分析について少し書き残します。

線形回帰分析
scikit-learnのドキュメントで言うOrdinary Least Squaresです。
分析には有名なirisのデータを使いました。


sepal length sepal width petal length petal width class
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa
5 5.4 3.9 1.7 0.4 Iris-setosa
6 4.6 3.4 1.4 0.3 Iris-setosa
7 5.0 3.4 1.5 0.2 Iris-setosa
8 4.4 2.9 1.4 0.2 Iris-setosa
9 4.9 3.1 1.5 0.1 Iris-setosa
10 5.4 3.7 1.5 0.2 Iris-setosa
11 4.8 3.4 1.6 0.2 Iris-setosa
12 4.8 3.0 1.4 0.1 Iris-setosa
13 4.3 3.0 1.1 0.1 Iris-setosa
14 5.8 4.0 1.2 0.2 Iris-setosa
15 5.7 4.4 1.5 0.4 Iris-setosa
16 5.4 3.9 1.3 0.4 Iris-setosa
17 5.1 3.5 1.4 0.3 Iris-setosa
18 5.7 3.8 1.7 0.3 Iris-setosa
19 5.1 3.8 1.5 0.3 Iris-setosa
20 5.4 3.4 1.7 0.2 Iris-setosa
21 5.1 3.7 1.5 0.4 Iris-setosa
22 4.6 3.6 1.0 0.2 Iris-setosa
23 5.1 3.3 1.7 0.5 Iris-setosa
24 4.8 3.4 1.9 0.2 Iris-setosa
25 5.0 3.0 1.6 0.2 Iris-setosa
26 5.0 3.4 1.6 0.4 Iris-setosa
27 5.2 3.5 1.5 0.2 Iris-setosa
28 5.2 3.4 1.4 0.2 Iris-setosa
29 4.7 3.2 1.6 0.2 Iris-setosa

import pandas
import numpy
from sklearn import datasets
from sklearn import linear_model

isis.data

iris=datasets.load_iris()

iris.data[:2]

clf = linear_model.LinearRegression()

#sepal lengthの切り出し
sl=iris.data[:,:1]
#sepal widthの切り出し
sw=iris.data[:,1:2]

clf.fit(sl,sw)
#散布図描写
plt.scatter(sl,sw)
#回帰直線描写
plt.plot(sl, clf.predict(sl), color='blue')

f:id:sd08013:20150418145552p:plain

慣れると結構便利です。