Edited at

Scikit-learnを使って教師あり学習(線形単回帰)をしてみた[基礎]


内容

Scikit-learnのLinearRegressionを使って、bostonデータセットの単回帰分析をやってみようと思います。今回はモデルを構築して単純に回帰分析をします。

単回帰分析とは、モデルの学習にboston.data[:, [5]](部屋数)1つだけ(説明変数1つ)で学習することをいいます。


データセットの読み込み

from sklearn.datasets import load_boston

from sklearn.linear_model import LinearRegression
import pandas as pd

# bostonデータセットの読み込み
boston = load_boston()


補足bostonデータセットのDataFrameの作成

ただ単にデータセットを読み込んだだけだど以下のようになってしまうので、DataFrameにします。

スクリーンショット 2018-09-17 0.22.24.png

boston_df = pd.DataFrame(data=boston.data,columns=boston.feature_names)

boston_df['PRICE'] = boston.target

スクリーンショット 2018-09-17 0.45.34.png

これで見やすい形になりました。

それぞれのカラムの内容なこんな感じです。

・CRIM・・・犯罪発生率(人口単位)

・ZN・・・25,000平方フィート以上の住宅区画の割合

・INDUS・・・非小売業の土地面積の割合(人口単位)

・CHAS・・・チャールズ川沿いかどうか(1:Yes、0:No)

・NOX・・・窒素酸化物の濃度(pphm単位)

・RM・・・1戸あたりの平均部屋数

・AGE・・・1940年よりも前に建てられた家屋の割合

・DIS・・・ボストンの主な5つの雇用圏までの重み付きの郷里

・RAD・・・幹線道路へのアクセス指数

・TAX・・・10,000ドルあたりの所得税率

・PTRATIO・・・教師あたりの生徒の数(人口単位)

・B・・・アフリカ系アメリカ人居住者の割合(人口単位)

・LSTAT・・・低所得者の割合

・PRICE・・・住宅価格



予測

# モデルの構築

model = LinearRegression()

# モデルの学習
# boston.data[:, [5]]はRM(部屋の数)、boston.target(住宅の価格)
model.fit(boston.data[:, [5]],boston.target)

# 予測精度
score = model.score(boston.data[:, [5]],boston.target)

print(score)

このような感じでScikit-learnを使えば簡単に単回帰分析が行えます。