要約
scikit-learnは、Pythonで記述されたオープンソースの機械学習ライブラリです。
機械学習に関連する多数のアルゴリズム、ツール、およびデータセットを提供し、機械学習の実行、評価、および解釈の基盤を提供します。
データ分析や予測モデルの構築などで幅広く使用され、Pythonの豊富なライブラリと組み合わせることで高度な分析を行うことも可能です。
詳細内容
はい、では簡単な例として、scikit-learnを使った線形回帰を紹介します。
線形回帰は、データの特徴と目的変数の関係を理解して、線形の関係式を使用して、未知のデータを予測することを目的としたアルゴリズムです。
まずはじめに、scikit-learnをimportします。
“`python
import sklearn
“`次に、scikit-learnが提供する線形回帰のクラスであるLinearRegressionをimportします。
“`python
from sklearn.linear_model import LinearRegression
“`このLinearRegressionを使って、簡単な線形回帰を行ってみましょう。
今回のデータセットは、8人の学生の数学の成績と英語の成績のデータセットで、数学の成績をもとに英語の成績を予測します。
“`python
# データセットを読み込む
import pandas as pd
data = pd.read_csv(“data.csv”)# データを確認する
data.head()
“`ここで、data.csvの内容は以下のようになっています。
| math score |english score |
| — | — |
| 50 | 40 |
| 60 | 55 |
| 70 | 60 |
| 80 | 75 |
| 90 | 85 |
| 95 | 80 |
| 85 | 70 |
| 75 | 65 |数学の成績が予測に使われる特徴量であり、英語の成績が目的変数になります。
“`python
# 特徴量と目的変数に分ける
X = data.iloc[:,:-1].values
y = data.iloc[:,1].values
“`ここでXには、数学の成績が、yには英語の成績が格納されます。
Xは、dataの全ての行(:)のうち、最後の列(-1)を除いた部分(.iloc[:,:-1])を取得しています。
yは、dataの全ての行(:)のうち、1つ目の列(1)を取得しています。
次に、データセットを学習用とテスト用に分割します。
学習用データはモデルの学習に使用し、テスト用データはモデルの検証に使用します。
“`python
# データセットを学習用とテスト用に分割する
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
“`ここで、train_test_split関数は、データを学習用データとテスト用データにランダムに分割します。
test_sizeはテスト用データの割合を指定し、random_stateはランダムシード値を指定します。
今回は、テスト用データを全体の20%にし、ランダムシード値を0にしています。
これで、学習用データとテスト用データが分割されました。
次に、学習用データを使って線形回帰モデルを作成し、テスト用データでの予測を行います。
“`python
# 線形回帰モデルを作成し、学習させる
regressor = LinearRegression()
regressor.fit(X_train, y_train)# テスト用データを使って予測する
y_pred = regressor.predict(X_test)
“`ここで、LinearRegressionクラスを使ってregressorという名前のモデルを作成し、fitメソッドを使って学習を行います。
学習が終わったら、predictメソッドを使ってテスト用データを使った予測を行います。
最後に、結果を評価します。
今回は評価指標として、平均二乗誤差(Mean Squared Error)を使います。
“`python
# 平均二乗誤差を計算する
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print(“Mean Squared Error: “, mse)
“`ここで、mean_squared_error関数を使って、テスト用データの実際の値(y_test)と予測値(y_pred)の平均二乗誤差を計算しました。
予測結果がどの程度正確かを示す指標であるMSEの値が表示されます。
以上が、簡単な線形回帰の例になります。
Scikit-learnを使えば、線形回帰はもちろんのこと、多様な種類の機械学習アルゴリズムが簡単に実装できます。
コメント