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