就拿最經典的房屋****來說吧,我們假設想用房屋面積去**房屋**,我們需要去假設自變數房屋面積和因變數房屋面積是線性相關關係的,而線性回歸正適合解決連續性變數**問題,所以這裡我們可以用單變數線性回歸去**它。
如圖,我們的資料集變化趨勢擬合一條直線,而我們的目的就是盡可能去找到一條直線擬合最多的點
對於多元線性回歸,我們只需要確定w=[w0,w1,w2…wn]w=[w0,w1,w2…wn]就能確定f(x)f(x)。如何確定最優的ww,就需要損失函式。這裡我們使用
均方誤差得到損失函式。
j(w)=12m∑i=1m(f(xi)−yi)2
j(w)=12m∑i=1m(f(xi)−yi)2
f(xi)f(xi):當前ww下,預估的yy。
yiyi:原始的yy。
我們可以去假設乙個代價函式 h(x)=θ1x+θ0
這裡,我們只需要最小化該代價函式,就能拿到最優ww。均方誤差對應了歐氏距離。基於均方誤差最小化來求解的方法叫做」最小二
使得j(w)=12m∑mi=1(f(xi)−yi)2j(w)=12m∑i=1m(f(xi)−yi)2最小化來求解ww叫做線性回歸最小二乘的引數估計。這裡j(w)j(w)是關於ww的凸函式,當它
關於ww的導數為零時,得到ww的最優解。
對於這種凸函式,只有乙個最低點。除了直接求導的方式,當引數非常非常多時,還有一種方式,在計算機的世界裡,可以逐步的去
逼近最低點。我們要做的是以最快的方式去逼近最低點。這裡,我們就用到了梯度下降。梯度下降,就是在每一點,去對每乙個ww求偏
導,確定梯度(前進的方向),每次前進一點(步長),去逼近最低點。當此次和上一次前進的差值達到設定的閾值或達到迭代次數,就停止,
取此時的ww為最接近的ww。這個過程類似於下山,每前進一步,按最陡的方向下山是最快的;梯度的作用就是幫我們找到這個陡的方向。
這裡是視覺化單變數線性回歸中假設的梯度下降的模型,沒有區域性最優解,只有乙個全域性最優解,所以是很好求出這個最優解時θ1和θ0的
需要注意的是學習速率的取值,一般是0.01,然後0.03.然後01這樣去試,在不同場景下學習速率的初始取值也是不一樣的,儘管我還沒碰到什麼時候回不一樣的問題
當到達最優解的時候,我們的假設函式h(x)是最擬合實際資料集的一元二次方程,也就建立了我們的訓練模型,接下來需要做的就是調參和優化問題了,需要考慮過擬合問題還有對特徵向量的一些處理,比如特徵放縮,歸一化一類的。
ok,今天第一天寫部落格,可能寫的不好,排版也沒搞懂,下次我再把多項回歸和一些演算法處理細節分享總結一下吧。
機器學習第乙個演算法
單變數線性回歸 導包import numpy as np import matplotlib.pyplot as plt plt.rcparams font.sans serif simhei 正常顯示中文 plt.rcparams axes.unicode minus false 正常顯示符號 讀...
Python機器學習 第乙個機器學習專案
資料集 1.導入庫 import pandas as pd import numpy as np import matplotlib as plt from sklearn.model selection import train test split from sklearn.model sele...
knn 第乙個學習的深度學習演算法
在幾經摸索下,終於用python開始寫下了自己的第乙個機器學習演算法knn 這是乙個分類演算法,可以通過已有標籤,判斷乙個輸入的事物是不是已知的標籤,其實這個演算法算是入門級的,用來練手剛剛好 寫完以後覺得,機器學習比較麻煩的是處理資料,輸入資料,困難的是對於資料的建模,其實寫不來多少 話不多說附上...