Pages

Tuesday, June 23, 2020

Boston Housing:ボストンの住宅価格(部屋数や犯罪率などの13項目)の表形式データセット - @IT

データセット「Boston Housing」について説明。506件のボストンの住宅価格の「表形式データ(部屋数や犯罪率などの13項目)」+「ラベル(住宅価格)」が無料でダウンロードでき、回帰問題などのディープラーニングや統計学/データサイエンスに利用できる。scikit-learn、Keras/tf.keras、TensorFlowにおける利用コードも紹介。

「AI・機械学習のデータセット辞典」のインデックス

連載目次

データセット解説

 Boston Housingデータセット(The Boston house-price data)ボストンの住宅価格データ)は、「1970年代後半における(米国マサチューセッツ州にある)ボストンの住宅価格」の表形式データセット(=構造化データセット)である(図1、米国国勢調査局が収集した情報から抽出&加工して作成されたデータセットである)。基本的に自由に使用できる(ライセンスは指定されていない。著作権は放棄していないものと考えられる)。

 Boston Housingは、主に回帰(数値予測、つまり「住宅価格の予測」)を目的としたディープラーニング/機械学習/統計学の研究や初心者向けチュートリアルで使われている(ただし、ディープラーニングを行うにはデータ数が506件と少なすぎる点に注意が必要だ)。

 Boston Housingは、13属性(説明変数、入力データ)+1属性(目的変数、ラベル=正解を示す教師データ)の14属性で構成されている。各属性(列項目)の意味は以下のようになっている。なお、各種ライブラリでは、説明変数(descriptive variable)となる13列のデータと、目的変数(target variable)となる1列のデータは、別々に取得できるようになっている。下記の「ダミー変数」とは、カテゴリー変数を01の数値にエンコーディングした後の変数である。

  • CRIM: 町別の「犯罪率」
  • ZN: 25,000平方フィートを超える区画に分類される住宅地の割合=「広い家の割合」
  • INDUS: 町別の「非小売業の割合」
  • CHAS: チャールズ川のダミー変数(区画が川に接している場合は1、そうでない場合は0)=「川の隣か」
  • NOX: 「NOx濃度(0.1ppm単位)」=一酸化窒素濃度(parts per 10 million単位)。この項目を目的変数とする場合もある
  • RM: 1戸当たりの「平均部屋数」
  • AGE: 1940年より前に建てられた持ち家の割合=「古い家の割合」
  • DIS: 5つあるボストン雇用センターまでの加重距離=「主要施設への距離」
  • RAD: 「主要高速道路へのアクセス性」の指数
  • TAX: 10,000ドル当たりの「固定資産税率」
  • PTRATIO: 町別の「生徒と先生の比率」
  • B: 「1000(Bk - 0.63)」の二乗値。Bk=「町ごとの黒人の割合」を指す
  • LSTAT: 「低所得者人口の割合」
  • MEDV:「住宅価格」(1000ドル単位)の中央値。通常はこの数値が目的変数として使われる

 ちなみに、執筆時点(2020年6月20日)では、黒人暴行死事件で人種差別が大問題となっているが、このデータには「黒人の割合」が入っているため、そういった人種差別の問題を含んでいる可能性があることに留意してほしい(公平性の観点から、機械学習で使う際には、データから[B]列項目を除外するなどの対策が必要かもしれない)。

 Boston Housingデータセット全体は、以下のようになっている。欠損値はない。

  • データ数は、合計506個(つまり、506行×13列の表形式データと、506行×1列のラベル)
  • 通常は、訓練用データ:404個(80%)と、テスト用データ:102個(20%)に分割する

 なお、元データ(boston.txt)は、506行×14列の表形式データとなっており、最後にある14列目が目的変数(ラベル)なので注意してほしい。

利用方法

 実際にBoston Housingを使うには、scikit-learn/Keras/TensorFlowといった各ライブラリが提供する機能を利用することをお勧めする。ムダな作業を省いて、効率的に使えるためだ。なお、TensorFlow DatasetsとPyTorchにはBoston Housingは用意されていなかった。

 以下に、それぞれのライブラリで「どのようなコードを書くとBoston Housingが使えるか」の典型的なコードを簡単に示しておく(コードの詳細は解説しない)。基本的に各ライブラリは、Boston Housingデータセットを自動的にダウンロードして使いやすい形にロードしてくれる機能を提供している。

scikit-learn

# !pip install scikit-learn  # ライブラリ「scikit-learn」をインストール

from sklearn.datasets import load_boston

boston = load_boston()

リスト1 scikit-learnでBoston Housingを利用する基本的なコード


 sklearn.datasets.load_boston ()関数を呼び出せばよい。

TensorFlow(tf.keras)/Keras

# !pip install tensorflow  # ライブラリ「TensorFlow」をインストール
# !pip install keras  # tf.kerasの場合は不要だが、Kerasを使う場合はライブラリ「Keras」をインストール

from tensorflow.keras.datasets import boston_housing  # tf.kerasを使う場合(通常)
#from keras.datasets import boston_housing  # tf.kerasではなく、Kerasを使う必要がある場合はこちらを有効にする

(train_data, train_labels), (test_data, test_labels) = boston_housing.load_data(
    test_split=0.2, # 訓練データとテストデータの分割で、何%をテストデータにするか
    seed=123        # シャッフル時に使うランダムシード(任意の数値)を指定可能
  )

リスト2 TensorFlow(tf.keras)/KerasでBoston Housingを利用する基本的なコード


 tf.keras.datasets.boston_housing.load_data()関数を呼び出せばよい。

「AI・機械学習のデータセット辞典」のインデックス

AI・機械学習のデータセット辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

Let's block ads! (Why?)



"部屋" - Google ニュース
June 23, 2020 at 01:00PM
https://ift.tt/37Vik5T

Boston Housing:ボストンの住宅価格(部屋数や犯罪率などの13項目)の表形式データセット - @IT
"部屋" - Google ニュース
https://ift.tt/3aHbHoY
Shoes Man Tutorial
Pos News Update
Meme Update
Korean Entertainment News
Japan News Update

No comments:

Post a Comment