本文へスキップ
BecomeCoder

Python AIコース · 第2章 回帰 ― 数値を予測する · レッスン5

係数と予測を読む

ブラウザで完結

導入

学習した直線は、y = a·x + ba(傾き=係数)と b(切片)という数字で表せます。これを読むと、モデルが何を学んだのかが分かります。

説明

model.coef_ に傾き、model.intercept_ に切片が入っています。

import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[22], [25], [28], [30], [33], [35]])
y = np.array([120, 150, 190, 220, 260, 300])

model = LinearRegression()
model.fit(X, y)

print("係数 (傾き):", round(model.coef_[0], 2))
print("切片:", round(model.intercept_, 2))

# 予測は「傾き × 気温 + 切片」を自分で計算しても同じ
temp = 30
print("30℃の予測:", round(model.predict([[30]])[0], 1))
print("手計算:", round(model.coef_[0] * temp + model.intercept_, 1))

**係数(傾き)**は「気温が1℃上がるごとに売上が何個増えるか」を表します。この値が大きいほど、気温が売上に強く影響しているということです。予測は結局「傾き × 入力 + 切片」の計算なので、モデルがブラックボックスではないことが分かります。

やってみよう

predict の結果と「手計算」の結果が一致することを確かめましょう。temp の値をいろいろ変えて、両者が常に同じになるか試してください。

演習

上のモデルの**係数(傾き)**を、小数第2位で丸めて print で表示してください。

ヒント1を見る

round(model.coef_[0], 2)

実際に動かしてみよう

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

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

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