機械学習を行う際に、サンプルデータとしてよく扱われるのが、「カリフォルニア住宅価格データセット」と呼ばれるデータセットです。このデータセットは、カリフォルニアの住宅価格と、その住宅の様々な特徴量(築年数、部屋数、位置情報など)を含むデータです。機械学習の回帰分析などでよく使用されます。
これらのデータをインポートするためには
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関数だけを読み込む」という意味になります。
- Python の
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)

