ML系列文章先引入數(shù)學(xué)理論和代碼實(shí)現(xiàn)結(jié)合你雌。
一、數(shù)學(xué)理論篇
引言:
數(shù)值型自變量和數(shù)值型新變量之間關(guān)系分析方法就是相關(guān)與回歸分析。是處理變量之間關(guān)系的一種統(tǒng)計(jì)方法超凳。兩個(gè)變量之間就是簡(jiǎn)單相關(guān)與簡(jiǎn)單回歸分析;兩個(gè)及以上是多元相關(guān)與多元回歸分析耀态。 如果從變量關(guān)系形態(tài)上又分為線性相關(guān)與線性回歸和非線性相關(guān)非線性回歸轮傍。
描述
當(dāng)然如何對(duì)相關(guān)關(guān)系描述與測(cè)度呢(是否有關(guān)系,有什么關(guān)系首装,關(guān)系強(qiáng)度创夜,樣本能否代表總體變量關(guān)系):
- 1散點(diǎn)圖
- 2相關(guān)系數(shù)(correlation coefficient) 樣本的記做r,總體的記做ρ
注:r僅僅是線性關(guān)系的度量仙逻,可能存在非線性關(guān)系驰吓,r=0不能得出不存在相關(guān)關(guān)系,要結(jié)合散點(diǎn)圖分析系奉,也不一定意味著x與y一定有因果關(guān)系
顯著性檢驗(yàn)(t分布)
因?yàn)榭傮w相關(guān)系數(shù)ρ未知棚瘟,用樣本相關(guān)系數(shù)r作為近似值會(huì)受到抽象波動(dòng)影響所以要進(jìn)行顯著性檢驗(yàn):
顯著性檢驗(yàn)方法
回歸模型
描述因變量y如何依賴自變量x和誤差項(xiàng)?的方程為回歸方程(regression model)
y = β0 + β1x + ? (一元線性回歸模型也稱為理論回歸模型)
注:誤差項(xiàng)? 是隨機(jī)變量,E(? )=0,對(duì)所有的x值喜最,? 的方差σ^2都相等偎蘸,服從正態(tài)分布。 給定任何一個(gè)x瞬内,y都服從期望值為β0+β1*x迷雪,方差為σ^2的正態(tài)分布。
估計(jì)回歸方程
方程:
對(duì)于x和y的n對(duì)觀測(cè)值虫蝶,用描述的直線就很多章咧,這時(shí)就需要引入一個(gè)原則來判定哪條代表兩個(gè)變量之間關(guān)系。 這個(gè)方法就是最小二乘法(method of least squares)
區(qū)分:
- 回歸模型是對(duì)統(tǒng)計(jì)關(guān)系進(jìn)行定量描述的一種數(shù)學(xué)模型.
- 回歸方程是對(duì)變量之間統(tǒng)計(jì)關(guān)系進(jìn)行定量描述的一種數(shù)學(xué)表達(dá)式.指具有相關(guān)的隨機(jī)變量和固定變量之間關(guān)系的方程.主要有回歸直線方程.
- 當(dāng)幾個(gè)變量有多重共線性時(shí),多元回歸分析得出的回歸方程,靠手算精確值計(jì)算量太大,所以只能得出估計(jì)值
回歸直線的擬合優(yōu)度(goodness of fit)
-
判定系數(shù)
是對(duì)擬合優(yōu)度的度量
需要了解概念SST(總平方和), SSR(回歸平方和)能真,SSE(殘差平方和), R^2 (判定系數(shù))= SSR/SST R^2∈[0,1] - 估計(jì)標(biāo)準(zhǔn)誤差
了解的概念:估計(jì)標(biāo)準(zhǔn)誤差(standard error of estimate)
赁严,是均方殘差(MSE)
的平方和.MSE是度量實(shí)際觀測(cè)值與回歸觀測(cè)值的差異程度扰柠。
回歸分析的顯著性檢驗(yàn) (F分布)
回歸分析以及顯著性檢驗(yàn)
注:F檢驗(yàn)是檢驗(yàn)總體回歸關(guān)系的顯著性,而t檢驗(yàn)則是各個(gè)回歸系數(shù)的顯著性
用回歸方程預(yù)測(cè)
- 置信區(qū)間估計(jì):對(duì)x的一個(gè)給定值x0疼约,求y的平均值的區(qū)間估計(jì)
- 期望估計(jì)值標(biāo)準(zhǔn)差的估計(jì)量的計(jì)算公式:自己找一找
- 預(yù)測(cè)區(qū)間估計(jì):對(duì)x的一個(gè)給定值x0卤档,求y的一個(gè)個(gè)別值的區(qū)間估計(jì)
- 個(gè)別估計(jì)值的標(biāo)準(zhǔn)差的估計(jì)量的計(jì)算公式:自己找一找
殘差分析
確定假定的 ?是否成立的方法之一是殘差分析
-
殘差(residual)
:因變量的觀測(cè)值與根據(jù)估計(jì)的回歸方程求的預(yù)測(cè)值之間的差。反映了用估計(jì)的回歸方程去預(yù)測(cè)yi而引起的誤差程剥。 - 殘差計(jì)算公式:略
-
標(biāo)準(zhǔn)化殘差(standardized residual)
:殘差除以它的標(biāo)準(zhǔn)差的數(shù)值,也稱為Pearson殘差或者半學(xué)生化殘差(semi-studentized residuals) 計(jì)算公式:略 ,它是殘差的標(biāo)準(zhǔn)化估計(jì)劝枣,因?yàn)榧俣?誤差項(xiàng)?服從正態(tài)分布成立,那么標(biāo)準(zhǔn)化殘差的分布也服從正態(tài)分布织鲸。
引申多元線性回歸
前面說的是一元舔腾,可以引申為多遠(yuǎn)是一樣的,只是多了幾個(gè)變量搂擦,概念和它的意義和上面一樣稳诚。因?yàn)樽宰兞慷啵赡芫蜁?huì)存在多重共線性
的問題(自變量之間存在相關(guān)關(guān)系)瀑踢。
判定
計(jì)算各對(duì)變量之間的相關(guān)關(guān)系扳还。處理
這個(gè)問題有點(diǎn)大,可以后續(xù)說明丘损,讀者可以先自行了解普办。一般來說就是剔除,使自變量盡可能不相關(guān)-
變量選擇
因?yàn)樵诮⒒貧w模型的時(shí)候徘钥,不能將所有自變量都引進(jìn)入模型衔蹲,所以需要一定篩選。- 向前選擇
- 向后剔除
- 逐步回歸
- 最優(yōu)子集
上述相關(guān)方法讀者可以自行了解呈础。
二舆驶、編程篇
yi = βxi + α + ?i
我們假設(shè)y是用戶i每天花在網(wǎng)站上的分鐘數(shù),xi是用戶i已有的朋友數(shù)而钞,而?i是誤差項(xiàng)沙廉,我們求出alpha和beta就可以進(jìn)行預(yù)測(cè)了
#預(yù)測(cè)
def predict(alpha,beta,x_i):
return beta * x_i + alpha
#計(jì)算誤差
def error(alpha,beta,x_i,y_i):
return y_i - predict(alpha,beta,x_i)
單純把各個(gè)誤差加起來不是很合理,因?yàn)橛械念A(yù)測(cè)太高臼节,有的太低撬陵,相加會(huì)抵消,因此求誤差的平方和
def sum_of_squared_errors(alpha,beta,x,y):
return sum(error(alpha,beta,x_i,y_i)**2
for x_i, y_i in zip(x,y))
也可利用最小二乘法選擇alpha和beta网缝,使得sum_of_squared_errors 盡可能小
#利用微積分求:
def least_squares_fit(x,y):
beta = correlation(x,y) * standard_deviation(y) / standard_deviation(x)
alpha = mean(y) - beta* mean(x)
return alpha,beta
用決定系數(shù)(coefficient of determination)R^2 這一指標(biāo)來評(píng)估模型對(duì)數(shù)據(jù)的擬合效果
def total_sum_of_squares(y):
return sum(v**2 for v in de_mean(y))
def r_squared(alpha,beta,x,y):
return 1.0 - (sum_of_squared_errors(alpha,beta,x,y) / total_sum_of_squares(y))
利用梯度下降法:
定義個(gè)theta = [alpha,beta]
def squared_error(x_i,y_i,theata):
alpha,beta = theta
return error(alpha,beta,x_i,y_i) ** 2
def squared_error_gradient(x_i,y_i,theta):
alpha, beta = theta
return [-2*error(alpha,beta,x_i,y_i), #alpha偏導(dǎo)數(shù)
-2*error(alpha,beta,x_i,y_i)*x_i] #beta偏導(dǎo)數(shù)
為什么選擇最小二乘法巨税?其中一個(gè)最大原因就是最大似然估計(jì)(maximum likelihood estimation)