Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

内容

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

kagami-r0927
都内に住む大学生 機械学習/業務効率化/フロント/バックエンドに興味があります。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away