機械学習のサンプルデータセット:カリフォルニア住宅価格データセットを読み込む方法

機械学習を行う際に、サンプルデータとしてよく扱われるのが、「カリフォルニア住宅価格データセット」と呼ばれるデータセットです。このデータセットは、カリフォルニアの住宅価格と、その住宅の様々な特徴量(築年数、部屋数、位置情報など)を含むデータです。機械学習の回帰分析などでよく使用されます。

これらのデータをインポートするためには

Python

from sklearn.datasets import fetch_california_housing

と記述することで読み込みが可能です。

しかし、NumpyやPandasを読み込む時は、「import numpy」で良かったのに、なぜこのカリフォルニアのデータでは「from」の指定が必要なのでしょうか。

fromが必要になる理由

from sklearn.datasets import fetch_california_housing というコードは、機械学習ライブラリ scikit-learn(sklearn)に含まれる「カリフォルニア住宅価格データセット」を読み込むためのものです。

コードの解説:

  • sklearn.datasets:
    • scikit-learn ライブラリには、様々なサンプルデータセットが含まれています。
    • sklearn.datasets は、それらのデータセットにアクセスするためのモジュールです。
  • fetch_california_housing:
    • fetch_california_housing は、カリフォルニア住宅価格データセットを読み込むための関数です。
    • このデータセットは、カリフォルニアの住宅価格と、その住宅の様々な特徴量(築年数、部屋数、位置情報など)を含むデータです。
    • 機械学習の回帰分析などでよく使用されます。
  • from ... import ... 構文:
    • Python の import 文には、import モジュール名 のようにモジュール全体を読み込む方法と、from モジュール名 import 関数名 のようにモジュール内の一部の要素だけを読み込む方法があります。
    • from sklearn.datasets import fetch_california_housing は、「sklearn.datasets モジュールから fetch_california_housing 関数だけを読み込む」という意味になります。

import numpy as np との違い

  • import numpy as np:
    • numpy は、数値計算のためのライブラリであり、import numpy とすることで、numpy ライブラリ全体の機能にアクセスできます。
    • そして、as npと記述する事でnumpyという長い名称をnpという短い名称で以降のコード内で使用する事が出来ます。
  • from sklearn.datasets import fetch_california_housing:
    • sklearn.datasets は、scikit-learn ライブラリの中の特定のモジュールであり、fetch_california_housing はそのモジュール内の特定の関数です。
    • from ... import ... 構文を使うことで、必要な要素だけを効率的に読み込むことができます。

なぜ from を使うのか

  • scikit-learn のように、大規模なライブラリでは、すべての機能を一度に読み込むとメモリを消費したり、名前の衝突が起きたりする可能性があります。
  • from ... import ... 構文を使うことで、必要な機能だけをピンポイントで読み込み、コードを効率化できます。
  • 今回のケースでは、sklearn.datasetsモジュールの中のfetch_california_housing関数のみを使用したいので、fromを使用しています。

カリフォルニア住宅価格データセットの読み込み例

Python

from sklearn.datasets import fetch_california_housing

# データセットの読み込み
california_housing = fetch_california_housing()

# データとターゲットの確認
print(california_housing.data.shape)
print(california_housing.target.shape)