クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

データで予測する

このレッスンのあとで: 回帰直線で予測を作り、検証用のデータで誤差を測ることができる。

45分のレッスンコマンド2件JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

回帰直線とは何か

回帰直線とは、点の並びにいちばん合うように引いた、1本の直線のことです。この線があれば、まだ見ていない気温の日に、自転車が何回借りられるかを予想できます。

予想はいつも当たるわけではありません。どのくらい外れるかを測り、新しいデータで確かめる方法も、今日学びます。

このレッスンのゴール

メモ

回帰直線で予測を作り、検証用のデータで誤差を測ることができる。

キーワード

ことばいみれい
予測まだ知らない値を、データから見積もること
回帰直線点の並びにいちばん合うように引いた直線
傾きx が1増えたとき、y がどれだけ増えるか1度上がると約11回増える
切片x が0のときの y の値
誤差予測と本当の値の差
検証用データ学習に使わずに取っておいた、確かめるためのデータ

学生が入力するセルは、このプレビューでは空白です。

始める前に

メモ

上のバーの Start the lab を押してください。起動に1分ほどかかります。Run ボタンを押すと、そのコマンドがターミナルに入力されます。ラボのデータは毎回同じです。

直線で関係を表すと何がわかるか

気温が上がると、貸し出し数も増えます。点の並びに直線を引くと、この関係を2つの数で言えます。

傾きは、1度上がるとどれだけ増えるかです。切片は、0度の日の貸し出し数の見当です。下の Run で、ラボのデータから直線を引きます。

気温と貸し出し数に直線を引く

コマンド
docker exec jupyter python3 steps/line.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

出力の数字の読み方

slope は傾きで、11.1 です。気温が1度上がると、貸し出しが11回ほど増えるという意味です。intercept は切片で、149.4 です。

R squared は、直線が、貸し出し数のばらつきをどのくらい説明できるかです。0から1で、0.595 ならおよそ6割です。

直線から予測を作る手順

予測は、傾きに x をかけて、切片を足すだけです。10度の日なら、11.1 × 10 + 149.4 = 260.4 回です。

プログラムが出す 261 と少し違うのは、プログラムがもっと細かい小数まで持っているからです。20度の日は、約372回と予測します。

例: 4つの点にいちばん合う直線

x(週)y(売れた数)x − 平均y − 平均2つをかける(x − 平均) を2回かける
13−1.5−34.52.25
25−0.5−10.50.25
360.5000.25
4101.5462.25
合計115

学生が入力するセルは、このプレビューでは空白です。

最小二乗法で傾きを出す

上の表で、x の平均は 2.5、y の平均は 6 です。傾きは、「2つをかけた合計」を「2回かけた合計」で割ります。11 ÷ 5 = 2.2 です。

切片は、6 − 2.2 × 2.5 = 0.5 です。直線は、y = 2.2 × x + 0.5 になります。誤差を二乗した合計が最も小さくなる直線なので、最小二乗法と呼びます。

誤差はどう測るのか

誤差は、予測と本当の値の差です。直線が外れた分だけ、誤差が出ます。平均の誤差を見ると、直線がどのくらい頼れるかがわかります。

ただし、直線を作るのに使った日で測ると、甘い点数になります。新しい日で確かめるために、データを2つに分けます。

学習用と検証用に分ける

学習用は、直線を作るために使います。検証用は、使わずに取っておき、あとで答え合わせに使います。テストの問題を、先に見せないのと同じです。

下の Run は、365日を、学習用273日と検証用92日に分けます。検証用の誤差を見ます。

データを分けて、誤差を測る

コマンド
docker exec jupyter python3 steps/split.py

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

よくある間違い

注意

学習に使ったデータで測った点数が高ければ、予測も当たると考える人がよくいます。でも、見たことのあるデータの点数は、甘くなります。本当の力は、取っておいた検証用のデータで測ります。

さらに挑戦: 雨を足すと

雨の量も使うと、予測は変わります。steps/model.py は、気温と雨の2つを使って直線を引きます。

雨が1ミリ増えると、貸し出しはどうなりますか。決定係数は、気温だけのときと比べてどう変わるかを見てみましょう。

このラボとソースについて: JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。