本文へスキップ
BecomeCoder

Python AIコース · 第1章 機械学習とは · レッスン1

はじめての機械学習 ― 予測してみる

ブラウザで完結

導入

理屈より先に、まず動かしてみましょう。「勉強時間から試験の点数を予測する」モデルを作ります。

説明

やることは3ステップだけです。データを用意 → 学習(fit)→ 予測(predict)

import numpy as np
from sklearn.linear_model import LinearRegression

# 勉強時間(時間)と、そのときの点数
X = np.array([[1], [2], [3], [4], [5], [6]])   # 特徴量(入力)
y = np.array([40, 50, 55, 65, 78, 85])          # 正解(出力)

model = LinearRegression()   # モデルを用意
model.fit(X, y)              # データから学習する

# 7時間勉強したら何点になりそう?
pred = model.predict([[7]])
print("7時間の予測点:", round(pred[0], 1))

model.fit(X, y) の1行が「学習」です。過去のデータ(勉強時間と点数の組)を渡すと、モデルが「時間が増えると点数も増える」という関係を自分でつかみます。あとは model.predict() に新しい時間を渡せば、未知の点数を予測してくれます。

人間が「1時間ごとに何点上がる」と計算式を書いたわけではない、という点が大切です。データを見せただけでモデルが規則を学びました。これが機械学習です。

やってみよう

model.predict([[8]])[[10]] で、別の勉強時間の予測も出してみましょう。y の点数を書き換えると、予測がどう変わるでしょうか。

演習

上のモデルで、勉強時間が0時間のときの予測点を print で表示してください。

ヒント1を見る

model.predict([[0]]) の結果を表示します。

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、scikit-learn で本物の機械学習モデルをその場で訓練できます。scikit-learn を使う回は初回の読み込みに時間がかかります(数十秒かかることがあります)。本文の例をそのまま試したり、数値を書き換えたりして、結果の変化を確かめましょう(グラフ内の文字は英字で書きます)。

Python — ライブラリ付きで実行(Pyodide)

numpy / pandas / matplotlib が使える本物のPython(Pyodide)を読み込みます。初回のみ読み込みに少し時間がかかります(以降はブラウザにキャッシュされます)。
スクロールして表示された時点でも自動で読み込まれます。