Pythonで機械学習を行うためのツールとして、Scikit-learnがあります。Scikit-learnは、Pythonで機械学習を実装するためのオープンソースライブラリであり、機械学習のアルゴリズム、データ前処理、モデル選択、モデル評価など、機械学習の様々なタスクを行うための機能が備わっています。
この記事では、Scikit-learnを使って簡単な回帰分析を行う方法を説明します。回帰分析は、例えば、広告費と売り上げの関係や、身長と体重の関係などを解析するのに使われます。また、回帰分析は、分析結果をもとに、被説明変数に影響を与える要因を特定することができます。まずは、Scikit-learnのインストールから始めます。
Scikit-learnのインストール
Scikit-learnは、pipコマンドを使って簡単にインストールできます。以下のコマンドを実行してください。
pip install -U scikit-learn
回帰分析
回帰分析は、ある目的変数に対して、複数の説明変数を用いて予測を行う方法です。Scikit-learnでは、線形回帰モデルを使って回帰分析を行うことができます。
データの準備
まずは、回帰分析に使うデータを用意しましょう。ここでは、Scikit-learnに含まれているボストン市の住宅価格データを使います。以下のコードで、データを読み込んでみましょう。
from sklearn.datasets import load_boston boston = load_boston() print(boston.DESCR)
上記のコードを実行すると、ボストン市の住宅価格データに関する説明が表示されます。これにより、どのようなデータが含まれているのかを理解することができます。
モデルの作成
データが用意できたら、回帰分析のモデルを作成しましょう。以下のコードを実行することで、線形回帰モデルを使ってモデルを作成することができます。
from sklearn.linear_model import LinearRegression X = boston.data y = boston.target model = LinearRegression() model.fit(X, y) print(model.coef_) print(model.intercept_)
上記のコードでは、説明変数をX
、目的変数をy
に格納し、線形回帰モデルを作成しています。model.fit(X, y)
で、モデルを学習させることができます。
モデルの評価
モデルを作成したら、その性能を評価しましょう。以下のコードを実行することで、モデルの性能を評価することができます。
from sklearn.metrics import mean_squared_error y_pred = model.predict(X) mse = mean_squared_error(y, y_pred) print(mse)
上記のコードでは、model.predict(X)
で予測値を求め、mean_squared_error(y, y_pred)
で平均二乗誤差を求めています。平均二乗誤差は、モデルの予測精度を評価する指標の一つです。
回帰分析の可視化
最後に、回帰分析の結果を可視化してみましょう。可視化にはmatplotlibというライブラリを利用します。以下のコードを実行することで、回帰直線を可視化することができます。
import matplotlib.pyplot as plt plt.scatter(X[:, 5], y) plt.plot(X[:, 5], model.predict(X), color='red') plt.xlabel('Number of rooms') plt.ylabel('Price') plt.show()
上記のコードでは、部屋の数と価格の関係を可視化しています。青い点が実際のデータであり、赤い線が回帰直線です。回帰直線を通して、部屋の数が増えるにつれて価格が上がる傾向があることがわかります。
まとめ
この記事では、Pythonの機械学習ライブラリであるScikit-learnを使って、簡単な回帰分析を行う方法について説明しました。Scikit-learnを使えば、線形回帰モデルを使って回帰分析を簡単に実装することができます。
具体的には、以下の手順で回帰分析を行いました。
- Scikit-learnのインストール
- データの準備
- モデルの作成
- モデルの評価
- 回帰分析の可視化
回帰分析では、ある目的変数に対して、複数の説明変数を用いて予測を行います。ここでは、ボストン市の住宅価格データを例に、部屋の数を説明変数、価格を目的変数として回帰分析を行いました。
回帰分析では、モデルの性能を評価するための指標として平均二乗誤差を用いました。また、回帰分析の結果を可視化することで、回帰直線を通して傾向を把握することができます。
Scikit-learnには、回帰分析以外にも機械学習の様々なタスクを行うための機能が備わっています。ぜひ、機械学習の学習にScikit-learnを活用してみてください。Pythonによる機械学習の習得には下記のようなオンラインコースの利用がおすすめです。