単純な線形回帰の背後にある数学
9964 ワード
線形回帰は、基本的に予測分析の使用型と機械学習で最も簡単なアルゴリズムの一つです.観測データに線形方程式を当てはめて変数間の関係を測定する.たとえば、携帯電話の年齢が増加すると、価格が下がる.したがって、1つの変数は説明変数(年齢)です.またはそれ以外の場合、我々は独立変数であると言うことができます.もう一つは従属変数(価格)であると考えられる.
その例から、携帯電話の将来の価格をその観測データを使って言うことができます.以下はサンプルデータの表です.
携帯電話時代
代金($ )
1
250
2
230
5
190
6
160
8
120
9
90
10
70
11
40
この場合、我々は携帯電話の年齢と価格の間の負の関係を参照してください.なぜ私は、携帯電話の年齢が増加すると、価格が低下すると言うのです.
もう一つの例は経験が増加する時です.それは肯定的な関係です.
我々は、このような年齢を与えられた携帯電話の将来の価格を予測しようとしています.
問題は7年後の価格です.それがどれくらいあるかについて見るためにそこに点を置きましょう.
それは100と50よりも少し低いです.だから、単純な線形回帰の背後に数学的側面を参照してください.式は And
その携帯電話の価格データを設定するための線形回帰式を見つける.
X (年)
値段
X 2
XY
1
250
1
250
2
230
4
460年
5
190
25
950年
6
160
36
960年
8
120
64
960年
9
90
81
810
10
70
100
700
11
40
121
440
(∑X )= 52
(∑Y = 1150
(∑x = = 32
(∑xy
さて、今、私たちは、それらの値をその数式に割り当てることができます
見つける
見つける
予測7年後の携帯電話の価格.使用
7年後の携帯電話価格は133.40 USD.ここでは、Pythonを使用しているScikit Learning線形回帰モデルと同じことをします.
畝
まず、データをCSVファイルに保存しなければなりません.そのためには、新しいCSVファイルを
コードしましょう!使っている
年齢の値
最後に、モデルを使用して7年後の携帯電話の価格を予測する.モデルオブジェクトは
その例から、携帯電話の将来の価格をその観測データを使って言うことができます.以下はサンプルデータの表です.
携帯電話時代
代金($ )
1
250
2
230
5
190
6
160
8
120
9
90
10
70
11
40
この場合、我々は携帯電話の年齢と価格の間の負の関係を参照してください.なぜ私は、携帯電話の年齢が増加すると、価格が低下すると言うのです.
もう一つの例は経験が増加する時です.それは肯定的な関係です.
我々は、このような年齢を与えられた携帯電話の将来の価格を予測しようとしています.
問題は7年後の価格です.それがどれくらいあるかについて見るためにそこに点を置きましょう.
それは100と50よりも少し低いです.だから、単純な線形回帰の背後に数学的側面を参照してください.式は
y = mx + b
. 私は、あなたが少しこの公式に精通しているということを知っています.なぜなら私たちはほとんど学校でこれを学んだからです.y
- 何を予測するつもりです.この場合、携帯電話価格(従属変数)m
- 傾斜または定数x
- 7年(独立変数)の入力b
- インターセプトm
and b
は以下の式で与えられる.その携帯電話の価格データを設定するための線形回帰式を見つける.
X (年)
値段
X 2
XY
1
250
1
250
2
230
4
460年
5
190
25
950年
6
160
36
960年
8
120
64
960年
9
90
81
810
10
70
100
700
11
40
121
440
(∑X )= 52
(∑Y = 1150
(∑x = = 32
(∑xy
さて、今、私たちは、それらの値をその数式に割り当てることができます
m
and b
.見つける
m
- 斜面見つける
b
- インターセプト予測7年後の携帯電話の価格.使用
y = mx + b
. The y
7年後に携帯電話の価格です(私たちは予測するつもりです).x
7年です.7年後の携帯電話価格は133.40 USD.ここでは、Pythonを使用しているScikit Learning線形回帰モデルと同じことをします.
畝
線形回帰モデル
まず、データをCSVファイルに保存しなければなりません.そのためには、新しいCSVファイルを
mobiledata.csv
このようなデータを追加します.コードしましょう!使っている
Jupyter Notebook
. 任意のPython IDEを使用することができます.次に、必要なライブラリをインストールします.(もし使っているならJupyter Notebook
, コマンドが端末で実行されたかのように動作する前に感嘆符を追加する)!pip install scikit-learn
!pip install numpy
!pip install pandas
!pip install matplotlib
これらのライブラリをインポートimport numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
読み込むmobiledata.csv
ファイル使用pandas
data_set = pd.read_csv('mobiledata.csv')
グラフを作成し、そこにポイントを置くplt.scatter(data.age, data.price, color='red')
plt.xlabel('Mobile phone Age')
plt.ylabel('Price')
このようなチャートを見ることができます.年齢の値
x
と価格値y
. これらの値をnumpy
配列.x = np.array(data.age.values)
y = np.array(data.price.values)
線形回帰クラスオブジェクトを作成し、fit
関数.また、model.fit
関数は2次元配列をx
位置.model = LinearRegression()
model.fit(x.reshape((-1,1)), y)
# x.reshape((-1,1) is convert numpy array to two dimensional array
我々は、必要に応じて、このデータセットの最適フィットラインを見つけることができます.の値を取得するm
(斜面)b
(インターセプト).plt.scatter(data.age, data.price, color='red')
plt.xlabel('Mobile phone Age')
plt.ylabel('Price')
m,b = np.polyfit(x,y,1)
plt.plot(x,m*x+b)
最後に、モデルを使用して7年後の携帯電話の価格を予測する.モデルオブジェクトは
model
. それが以前計算された値に等しいかどうかを確認する価格を予測します.そのためには、x値(7)をNumpy配列と2次元配列に変換する必要があります.year_seven = np.array([7]).reshape((-1,1))
# Predict the price
model.predict(year_seven)
あなたは、モデルを使用して予測した後、価格は、我々は数式を使用して、以前に計算された値とまったく同じであることがわかります.# array([133.40425532])
あなたの値をチェックすることができますm
and b
ノートブックで変数を実行することによって.m
# -20.691489361702125
b
# 278.2446808510638
ハッピーコーディング🎉Reference
この問題について(単純な線形回帰の背後にある数学), 我々は、より多くの情報をここで見つけました https://dev.to/thirashapraween/math-behind-simple-linear-regression-scikit-learn-5gc2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol