機械学習を使用してボストンの住宅価格を予測する

目次

序章

データセットの紹介

準備

データのロードと前処理

モデルトレーニング

モデルの評価

視覚化

要約する

次のステップ

ディープラーニング

エピローグ


序章

機械学習を使用したボストンの住宅価格予測に関するこのブログへようこそ。ボストンの住宅価格データ セットは非常に古典的なデータ セットで、回帰問題の学習と研究に広く使用されています。このブログでは、データ処理、モデルのトレーニング、結果の評価に Python と scikit-learn ライブラリを使用する方法を詳しく説明します。

データセットの紹介

ボストンの住宅価格データセットは、1978 年のボストン郊外の住宅価格の中央値に基づいています。家の平均部屋数、犯罪率、税金など、13 の特徴を含む合計 506 のサンプルが含まれています。私たちの目標は、これらの特徴から住宅価格を予測することです。

準備

まず、scikit-learn ライブラリをインストールする必要があります。ターミナルに次のコマンドを入力してインストールします。

pip install scikit-learn

次に、関連するライブラリをインポートする必要があります。

 
 
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

データのロードと前処理

まず、scikit-learndatasetsモジュール。

boston = datasets.load_boston()
X = boston.data
y = boston.target

同様に、データセットをトレーニング セットとテスト セットに分割します。

 
 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

次に、 を StandardScaler 使用して特徴を正規化します。

 
 
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

モデルトレーニング

ここでは、住宅価格の予測に線形回帰モデルを使用します。線形回帰は、シンプルですが非常に役立つ予測モデルです。

model = LinearRegression()
model.fit(X_train, y_train)

モデルの評価

モデルを使用してテスト セットで予測を行い、予測の平均二乗誤差 (MSE) を計算してモデルのパフォーマンスを評価します。

 
 
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print('Mean Squared Error: ', mse)

平均二乗誤差が小さいほど、モデルの予測はより正確になります。平均二乗誤差が大きい場合は、モデルを調整するか、より複雑なモデルを使用する必要がある場合があります。

視覚化

matplotlib ライブラリを使用して予測結果を視覚化し、モデルの予測効果をより深く理解できます。ここでは、x 軸が実際の住宅価格を表し、y 軸が予測された住宅価格を表す散布図をプロットします。

plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred)
plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], color='red') # a red line for perfect prediction
plt.xlabel('Actual')
plt.ylabel('Predicted')
plt.title('Actual vs Predicted')
plt.show()

グラフでは、赤い線が完全な予測を表しています。すべてのポイントがこの赤い線にできるだけ近くなるようにしたいと考えています。これは、モデルに強力な予測力があることを示しています。

要約する

このチュートリアルを完了すると、機械学習タスクに Python と scikit-learn を使用する方法をよりよく理解できるようになります。この例では、単純ですが便利なモデルである線形回帰モデルを使用しました。ただし、実際のタスクでは、ニューラル ネットワークなどのより複雑なモデルを使用する必要がある場合があります。

次のステップ

次に、サポート ベクター回帰、デシジョン ツリー回帰、ランダム フォレスト回帰などの他の機械学習モデルを使用して、より良い予測結果が得られるかどうかを確認できます。同時に、より複雑なデータセットを使用して機械学習のスキルを向上させることもできます。

ディープラーニング

機械学習の道をさらに進んでいくと、モデルの選択とパラメーターの調整は氷山の一角にすぎないことがわかります。実際、データの理解、特徴量エンジニアリング、モデルの選択、パラメーターの調整、モデルの検証、結果の解釈など、すべてのステップが非常に重要です。さらに、これらのステップでは、繰り返しの反復と継続的な改善が必要になることがよくあります。

たとえば、データをより深く調査して (探索的データ分析 (EDA) と呼ばれます)、データ内の外れ値、欠損値、分布、その他の情報を見つけることができます。これは、データをより深く理解し、より良いモデルを作成するのに役立ちます。

さらに、特徴量エンジニアリングもモデルのパフォーマンスを向上させる鍵となります。新しいフィーチャを作成したり、既存のフィーチャを変換したり、モデル化する最も重要なフィーチャを選択したりすることができます。

エピローグ

このブログを楽しんでいただき、そこから何か新しいことを学んでいただければ幸いです。覚えておいてください。これはほんの始まりにすぎません。機械学習は奥深くてやりがいのある分野ですが、粘り強く続ければ、必ずこの分野で進歩することができます。今後の学習では、多くの困難や課題に遭遇するかもしれませんが、それも成長の一環であることを忘れないでください。機械学習の旅が成功することを祈っています。

このブログの最後に、質問を残したいと思います。よく考えて答えてみてください。このブログでは線形回帰モデルを使用しました。したがって、意思決定などの他のモデルを使用する場合は、ツリー回帰またはニューラルネットワークの場合、結果は異なりますか? この質問にはさらなる学習と練習が必要かもしれませんが、必ず答えが見つかると信じています。

このブログを読んでいただきありがとうございます。お役に立てれば幸いです。次回お会いしましょう!

おすすめ

転載: blog.csdn.net/m0_68036862/article/details/130686655