LoginSignup
2
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-09-17

内容

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を使えば簡単に単回帰分析が行えます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1