ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

google colaboでscikit-learnのbostonが使えないとき

機械学習チュートリアルを行っているとscikit-learnのbostonが使われていることがよくあります。 そのチュートリアル脳死で実行するとエラーが起こります。

scikit-learnのbostonとは

scikit-learnのbostonは、機械学習の分野でよく使用されるデータセットの1つです。このデータセットは、1970年代のボストン都市圏の住宅価格に関する情報を含んでいます。主に回帰問題のモデルの評価や検証に使用されます。

bostonデータセットの以下の特徴量

  • CRIM: 人口一人当たりの犯罪発生率
  • ZN: 25,000平方フィート以上の住宅区画の割合
  • INDUS: 小売業以外の商業エーカーの割合
  • CHAS: チャールズ川に関連しているダミー変数 (1: 川の周辺、0: それ以外)
  • NOX: 窒素酸化物の濃度(1000万分の1)
  • RM: 住宅あたりの平均部屋数
  • AGE: 1940年より前に建てられた所有住宅の割合
  • DIS: 5つのボストンの雇用センターへの重み付き距離
  • RAD: 環状高速道路へのアクセスの指標
  • TAX: $10,000ドルあたりの固定資産税率
  • PTRATIO: 教師あたりの生徒の数(小学校ごと)
  • B: 1000(Bk - 0.63)2 として計算される黒人の割合
  • LSTAT: 低所得者の割合 また、ターゲット変数として、各住宅の所有者が求める住宅価格の中央値(単位: $1,000)が含まれています。
    scikit-learnのboston
    scikit-learnのbostonデータセットは、モデルのトレーニングやテストに使用する際に便利なデータセットであり、回帰問題の研究や実践に広く活用されています。

bostonが使えないエラー

from sklearn.datasets import load_boston
boston = load_boston()

このコードを実行するとエラーが発生します。

ImportError: 
`load_boston` has been removed from scikit-learn since version 1.2.

The Boston housing prices dataset has an ethical problem: as
investigated in [1], the authors of this dataset engineered a
non-invertible variable "B" assuming that racial self-segregation had a
positive impact on house prices [2]. Furthermore the goal of the
research that led to the creation of this dataset was to study the
impact of air quality but it did not give adequate demonstration of the
validity of this assumption.

pip list でバージョンを調べると確かに1.2.以降です

pip list
scikit-learn                  1.2.2

エラー回避方法

1.2.以降はサポートされていないということなので、単純にそれ以前のバージョンを指定してインストールします。

!pip install scikit-learn==1.1.0

例えばこんな感じです。

なぜサポート対象外に?

理由はポリティカルな理由です。ボストン住宅価格データは問題があるためscikit-learnでも扱わないようになりました。 たしかに黒人の割合とか低所得者とか問題がありそうですよね…

最後に

今回はエラーを回避する方法を記載しましたが、あくまでもポリティカルな事情があるデータということを認識した上で、チュートリアルなどで使用するのが良いと思います。

YouTube

youtu.be