7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

半歩ずつ進める機械学習 ~scikit-learn ボストン住宅価格編~

Posted at

はじめに

機械学習の勉強の為に、scikit-learnのデータセットを1個ずつ分析していきます。
一歩ずつなんてとんでもない、データの俯瞰からゆっくり、半歩ずつ学習を進めて行きたいと思います。
現在進行形で勉強中の身なので、出来るだけ正確な内容を書けるように努力しますが、書いてある内容は便所の落書き程度の信頼性だとお考えください。

分析対象データについて

今回、分析するのはscikit-learnライブラリで提供されている
ボストン住宅価格と、住宅の環境の関係についてです
環境に関するパラメータには以下の13種があります

カラム名 内容
CRIM 人口 1 人当たりの犯罪発生数
ZN 25,000 平方フィート以上の住居区画の占める割合
INDUS 小売業以外の商業が占める面積の割合
CHAS チャールズ川によるダミー変数 (1: 川の周辺, 0: それ以外)
NOX NOxの濃度(窒素酸化物)
RM 住居の平均部屋数
AGE 1940 年より前に建てられた物件の割合
DIS 5 つのボストン市の雇用施設からの距離 (重み付け済)
RAD 環状高速道路へのアクセスしやすさ
TAX $10,000 ドルあたりの不動産税率の総計
PTRATIO 町毎の児童と教師の比率
B 町毎の黒人 (Bk) の比率を次の式で表したもの。 1000(Bk – 0.63)^2
LSTAT 給与の低い職業に従事する人口の割合 (%)

これらのパラメータと住宅価格の関係を調べ
最終的には、価格不明の物件のパラメータから、価格を予測する計算式(モデル)を導き出す事を目標とします。

まずはデータの読み込みから

boston.py
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston
import pandas as pd

boston = load_boston()#環境データのロード
env_data = pd.DataFrame(boston.data,columns = boston.feature_names)#データをDataFrame形式に
price_data = boston.target#住宅価格のデータをロード

この時点でenv_dataには13種のパラメータデータが506件分入っています
price_dataには506件分の住宅価格データが入っています。

実際に3件分のデータをそれぞれ見てみましょう

CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT
0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.09 1.0 296.0 15.3 396.9 4.98
0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 17.8 396.9 9.14
0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0 17.8 392.83 4.03
PRICE
24.
21.6
34.7

こんな感じのデータが506件分、env_dataとprice_dataに入っているワケです

##データをグラフ化してみよう
とりあえず分析に入る前にseabornを使ってenv_dataの中のパラメータ同士の関係性を見てみましょう

import seaborn as sns
sns.pairplot(env_data)

ダウンロード.png

眺めて「ふんふん」って言ってるだけで、分析してる気分になりますね
同様に相関性の強さをヒートマップという表で可視化してみます。

#相関係数の行列を作成
heat = env_data.corr()

plt.figure(figsize=(15,10))

#表のスタイルを指定しながらヒートマップを表示
sns.heatmap(heat, vmin=-1,vmax=1.0,center=0,annot=True, xticklabels=boston.feature_names, yticklabels=boston.feature_names,cmap="bwr")

ダウンロード (1).png

表を見ると分かるように、より強い相関を持つマスは濃い色に、相関の薄い物は淡い色になっています
※斜めのマスは同じ全て同じ要素同士(CRIMとCRIM、ZNとZN...)の相関になるので、全て1になっています。

パラメータの中に強い相関を持つものがあると
多重共線性という現象で、最終的に求める計算式の予測精度が悪くなったりするようです

##休憩
今回はここまでにしましょう
データ見ただけじゃないか!ってな話ですが
そこは、半歩ずつ。のんびり行きましょう

##お願い
独学で機械学習を勉強しつつ、備忘録・理解の確認の為にQiitaに投稿しています。
間違った解釈や説明が多々あるかと思います。
お気づきになった方は、どうか優しくご指摘お願いいたします

7
9
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
7
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?