Pythonで機械学習を楽しもう!
みんな、機械学習って聞いたことあるやろ?最近はAIがすごく身近になってきて、毎日の生活でも使われてるんや。例えば、スマホのカメラで自動で被写体を認識してくれたり、音声アシスタントが話しかけたことに応えてくれたりするのは、全部機械学習のおかげやねん。
この講座では、Pythonのscikit-learnっていうライブラリを使って、機械学習の基本を楽しく学んでいくで!このライブラリを使うと、データを分析したり、未来の予測をしたりするのがめっちゃ簡単になるんや。手軽に使えるから、初心者でもすぐに結果が出せるのが魅力的やね。
機械学習を学ぶことで、データから新しい知識を引き出したり、問題解決の手助けをしたりできるようになるで!さあ、一緒に楽しく学んでいこうや!
scikit-learnの概要と特徴
scikit-learn(サイキットラーン)は、Pythonで機械学習を行うためのライブラリやねん。これを使うと、データの分析や予測が簡単にできるようになるんや。ここでは、scikit-learnの主な特徴を紹介するで!
シンプルなAPI
scikit-learnは、直感的で使いやすいインターフェースを提供してるから、初心者でも簡単に使えるんや。データの前処理からモデルの評価まで、一貫した方法で進めることができるんやで。
多様なアルゴリズム
このライブラリには、分類、回帰、クラスタリング、次元削減など、さまざまな機械学習アルゴリズムが用意されてるんや。これにより、いろんな問題に対応できるのが魅力やね。
データ前処理が簡単
データはそのままでは使えへんから、前処理が大事やねん。scikit-learnでは、データのスケーリングや欠損値処理、特徴量の選択が簡単にできる機能が揃ってるから、しっかり準備できるで。
クロスバリデーション
モデルの性能を評価するために、交差検証(クロスバリデーション)が簡単にできるんや。これを使うことで、より信頼性の高い結果を得ることができるで。
豊富なドキュメントとコミュニティ
scikit-learnには、豊富なドキュメントやチュートリアルが用意されてるから、学ぶのが楽しいで!また、世界中のユーザーが使ってるから、質問や疑問があっても助けてもらいやすいんや。
さあ、scikit-learnの魅力を知ったところで、次はデータセットの読み込みについて学んでいこう!
データセットの読み込み(iris、Boston housing)
機械学習を始めるには、まずデータが必要やねん。scikit-learnには、よく使われるデータセットがいくつか組み込まれてるから、手軽に試すことができるで!ここでは、代表的な「Irisデータセット」と「Boston Housingデータセット」を読み込む方法を説明するで。
Irisデータセット
Irisデータセットは、アヤメの花の種類を分類するためのデータやねん。このデータセットには、花の特徴(がく片の長さ・幅、花びらの長さ・幅)と、それに対応する花の種類が含まれてるんや。
Irisデータセットを読み込むには、以下のコードを使うで:
from sklearn.datasets import load_iris
iris = load_iris()
X_iris = iris.data # 特徴量
y_iris = iris.target # ラベル
Boston Housingデータセット
Boston Housingデータセットは、ボストン市の住宅価格を予測するためのデータやねん。これには、さまざまな特徴(犯罪率、住環境、教育水準など)が含まれてて、それをもとに住宅の価格を予測するのが目的や。
Boston Housingデータセットを読み込むには、以下のコードを使うで:
from sklearn.datasets import load_boston
boston = load_boston()
X_boston = boston.data # 特徴量
y_boston = boston.target # 価格
データを確認してみよう
読み込んだデータがどんなもんか、ちょっと確認してみるとええで。例えば、Irisデータセットの特徴量の形状を見てみると、どれだけのデータがあるかわかるで。
print(X_iris.shape) # Irisデータセットの特徴量の形状
print(X_boston.shape) # Boston Housingデータセットの特徴量の形状
これでデータの準備ができたで!次は、モデルのインポートと初期化について学んでいこう!
モデルのインポートと初期化
データセットを読み込んだら、次は機械学習モデルを使う準備をするで!scikit-learnでは、いろんなモデルが用意されてるから、自分が解決したい問題に合ったモデルを選んで使うことができるんや。
モデルのインポート
まずは、使いたいモデルをインポートする必要があるで。ここでは、Irisデータセットの分類には「決定木(Decision Tree)」を、Boston Housingデータセットの回帰には「線形回帰(Linear Regression)」を使う例を紹介するで。
決定木のインポート
from sklearn.tree import DecisionTreeClassifier
線形回帰のインポート
from sklearn.linear_model import LinearRegression
モデルの初期化
モデルをインポートしたら、次はそのモデルを初期化するんや。初期化は、モデルを使う準備をすることやから、簡単にできるで。
決定木の初期化
decision_tree = DecisionTreeClassifier()
線形回帰の初期化
linear_regression = LinearRegression()
モデルの確認
初期化したモデルを確認するのもええで。例えば、モデルのハイパーパラメータを確認したり、どんな情報があるかを表示してみたりするんや。
print(decision_tree) # 決定木の情報
print(linear_regression) # 線形回帰の情報
これでモデルのインポートと初期化が完了や!さあ、次はモデルの学習(fit)と予測(predict)について学んでいこう!
モデルの学習(fit)と予測(predict)
モデルを初期化したら、次は実際にデータを使ってモデルを学習させるで!これを「fit(フィット)」と言うんや。そして、学習したモデルを使って新しいデータの予測を行うのが「predict(プレディクト)」や。ここでは、IrisデータセットとBoston Housingデータセットの例を見ていくで。
モデルの学習(fit)
まずは、モデルにデータをフィットさせるんや。Irisデータセットの決定木モデルを使って、花の特徴量を学習させる例を示すで。
決定木の学習
decision_tree.fit(X_iris, y_iris)
次は、Boston Housingデータセットの線形回帰モデルをフィットさせるで。
線形回帰の学習
linear_regression.fit(X_boston, y_boston)
これでモデルがデータに適応したことになるんや。さあ、次は予測をしてみよう!
モデルの予測(predict)
学習が終わったら、新しいデータに対して予測を行うで。Irisデータセットの決定木モデルを使って、花の種類を予測する例を見てみよう。
決定木の予測
predictions_iris = decision_tree.predict(X_iris)
同じように、Boston Housingデータセットの線形回帰モデルを使って、住宅価格を予測してみるで。
線形回帰の予測
predictions_boston = linear_regression.predict(X_boston)
予測結果の確認
予測が終わったら、実際の結果と比較してみるとええで。たとえば、Irisデータセットでは、予測結果を表示してみることができるで。
print(predictions_iris) # Irisデータセットの予測結果
Boston Housingデータセットも同様に、予測した価格を確認してみるんや。
print(predictions_boston) # Boston Housingデータセットの予測結果
これでモデルの学習と予測が完了や!次は、基本的な結果の解釈方法について学んでいこう!
基本的な結果の解釈方法
モデルの学習と予測が終わったら、次はその結果をどう解釈するかが大事やで!結果を正しく理解することで、モデルの性能を評価したり、改善点を見つけたりすることができるんや。ここでは、IrisデータセットとBoston Housingデータセットの結果をどう解釈するかを見ていくで。
Irisデータセットの結果の解釈
Irisデータセットの場合、予測した花の種類を実際のラベルと比較して、モデルの性能を評価することができるで。以下の方法で、正解率(Accuracy)を計算できるんや。
from sklearn.metrics import accuracy_score
accuracy_iris = accuracy_score(y_iris, predictions_iris)
print(f"Irisデータセットの正解率: {accuracy_iris:.2f}")
この正解率が高いほど、モデルがうまく学習できた証拠や!例えば、0.90(90%)の正解率なら、90%のデータを正しく分類できたことになるで。
Boston Housingデータセットの結果の解釈
Boston Housingデータセットの場合、予測した価格と実際の価格を比較して、モデルの性能を評価することができるんや。ここでは、平均絶対誤差(MAE)や平均二乗誤差(MSE)を計算してモデルの精度を測るで。
平均絶対誤差(MAE)
from sklearn.metrics import mean_absolute_error
mae_boston = mean_absolute_error(y_boston, predictions_boston)
print(f"Boston Housingデータセットの平均絶対誤差: {mae_boston:.2f}")
平均二乗誤差(MSE)
from sklearn.metrics import mean_squared_error
mse_boston = mean_squared_error(y_boston, predictions_boston)
print(f"Boston Housingデータセットの平均二乗誤差: {mse_boston:.2f}")
これらの指標が小さいほど、モデルの予測精度が高いことになるで!
結果を可視化する
結果をただ数値で見るだけやなくて、可視化してみるのもええで。例えば、Irisデータセットの予測結果と実際のラベルを散布図で表示してみるとか、Boston Housingデータセットの価格予測をヒストグラムで表示してみると、モデルの性能が直感的に理解しやすくなるで。
import matplotlib.pyplot as plt
# Irisデータセットの可視化
plt.scatter(y_iris, predictions_iris)
plt.xlabel('実際のラベル')
plt.ylabel('予測ラベル')
plt.title('Irisデータセットの予測結果')
plt.show()
# Boston Housingデータセットの可視化
plt.scatter(y_boston, predictions_boston)
plt.xlabel('実際の価格')
plt.ylabel('予測価格')
plt.title('Boston Housingデータセットの予測結果')
plt.show()
これで結果の解釈ができたで!正解率や誤差を用いてモデルの性能を評価し、可視化で理解を深めることが大切や。これから自分のデータを使って、いろんなモデルを試してみてな!次のステップに進む準備ができたら、また一緒に学ぼう!
【機械学習入門】scikit-learnを使ったモデルの学習から予測までの実践ガイド!