irisデータセットを読み込む
import pandas as pd import seaborn as sns df = sns.load_dataset('iris') df
- sepal length ... ガクの長さ
- sepal width ... ガクの幅
- petal length ... 花弁の長さ
- petal width ... 花弁の幅
散布図に展開する
行データから花弁の幅(patal width)と長さ(petal length)を散布図に展開してみる。
sns.scatterplot(x=df.petal_width, y=df.petal_length)
線形単回帰モデルを作成する
from sklearn.linear_model import LinearRegression model = LinearRegression() # 学習データ(花弁の幅) X = pd.DataFrame(df.petal_width) # 正解データ(花弁の長さ) Y = df.petal_length # モデルを学習する model.fit(X, Y)
花弁の幅に対して花弁の長さは正解データになるため、教師あり学習になる
散布図に回帰直線を重ねる
import matplotlib.pyplot as plt # さきほど作成したモデルを使用して、Xに大して予測を実行し予測値(Y_predict)を算出する Y_predict = model.predict(X) # 散布図にプロットして回帰直線を重ねる sns.scatterplot(x=df.petal_width, y=df.petal_length) plt.plot(X, Y_predict, color='red')