機械学習チュートリアル

機械学習(Machine Learning)は人工知能(AI)の一分野であり、コンピュータシステムがデータとアルゴリズムを利用して自動的に学習し、その性能を向上させることを可能にします。

機械学習は、機械が経験(データ)を通じて意思決定や予測を行うようにするものです。

機械学習は、レコメンドシステム、画像認識、音声認識、金融分析など、多くの分野で広く応用されています。

例えば、機械学習によって、自動車は交通標識、歩行者、障害物を認識する方法を学習し、自動運転を実現できます。


機械学習と従来のプログラミングの違い

従来のプログラミング 機械学習
プログラマーが明確なルールを書く コンピュータがデータからルールを学習する
問題が明確で、ルールがはっきりしている場合に適する 複雑で、ルールを明確にしにくい場合に適する
例:電卓プログラムを作成する 例:迷惑メールを識別するプログラムを作成する


機械学習の三大要素

機械学習には3つの基本要素があります:

1. データ

データは機械学習の燃料であり、質が高く量が多いデータほど、通常モデルはより良く学習できます。

  • トレーニングデータ:モデルを教えるために使用するデータ
  • テストデータ:モデルの学習効果を検証するためのデータ
  • 実データ:モデルが実際の応用で遭遇する新しいデータ

2. アルゴリズム

アルゴリズムは機械学習の学習方法であり、異なるアルゴリズムは異なるタイプの問題に適しています。

  • 教師あり学習:正解がある学習
  • 教師なし学習:正解がなく、自分でパターンを見つける
  • 強化学習:試行錯誤と報酬を通じて学習する

3. モデル

モデルは学習の結果であり、学生が学んだ知識のようなものです。

  • トレーニングプロセス:アルゴリズムがデータからパターンを学習する
  • 推論プロセス:学んだパターンを使って予測を行う

実例

次に、簡単な例を通して機械学習の基本的な流れを理解しましょう。

Pythonを使用して、住宅価格を予測する簡単な線形回帰モデルを作成します。

実例

# 必要なライブラリをインポート
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import seaborn as sns

# グラフのスタイルを設定して、グラフを見やすくする
sns.set_style("whitegrid")
# -------------------------- 中国語フォントの設定 start --------------------------
plt.rcParams['font.sans-serif'] = [
    # Windows 優先
    'SimHei', 'Microsoft YaHei',
    # macOS 優先
    'PingFang SC', 'Heiti TC',
    # Linux 優先
    'WenQuanYi Micro Hei', 'DejaVu Sans'
]
# マイナス記号が四角く表示される問題を修正
plt.rcParams['axes.unicode_minus'] = False
# -------------------------- 中国語フォントの設定 end --------------------------

# 1. データを準備
# 住宅面積と対応する価格データがあると仮定
# 住宅面積(平方メートル)
house_sizes = np.array([50, 60, 70, 80, 90, 100, 110, 120]).reshape(-1, 1)
# 住宅価格(万元)
house_prices = np.array([150, 180, 210, 240, 270, 300, 330, 360])

# 2. モデルを作成してトレーニング
# 線形回帰モデルを作成
model = LinearRegression()
# データを使ってモデルをトレーニング(面積と価格の関係を学習)
model.fit(house_sizes, house_prices)

# 3. モデルを使って予測
# 85平方メートルの住宅価格を予測
predicted_price = model.predict([[85]])
print(f"85平方メートルの住宅の予測価格:{predicted_price)

# 4. 結果を可視化
plt.scatter(house_sizes, house_prices, color='blue', label='実データ')
plt.plot(house_sizes, model.predict(house_sizes), color='red', label='予測線')
plt.scatter([85], predicted_price, color='green', s=100, label='予測点')
plt.xlabel('住宅面積(平方メートル)')
plt.ylabel('住宅価格(万元)')
plt.title('サンプル 機械学習テスト -- 住宅面積と価格の関係')
plt.legend()
plt.grid(True)
plt.show()

実行結果:

85 平方米的房屋预测价格:255.00 万元

この例は機械学習の基本的な流れを示しています:

  1. データの準備(住宅面積と価格)
  2. アルゴリズムの選択(線形回帰)
  3. モデルのトレーニング(コンピュータに面積と価格の関係を学習させる)
  4. モデルを使った予測(新しい面積の価格を予測)

出力された図は以下の通りです:

その他の拡張