模式識別之線性回歸 最小二乘和線性回歸

2022-02-02 22:38:14 字數 1804 閱讀 4271

-----------------------------author:midu

------------------------datetime:2014-12-08 02:29

(1)前言

以前看最小二乘,一直很模糊,後面昨天看了mit的線性代數之矩陣投影和最小二乘,突然有種豁然開朗的感覺,那位老師把他從方程的角度和矩陣聯絡起來,又有了不一樣的理解。其實很簡單就是通過找離散分布的點和貼近的直線間的最小距離,因為距離是正數,為了方便運算就加了個平方,這就是最小二乘法。然後看到了線性回歸,借用網友的一片資料處理的博文做拓展。

(2)演算法

這裡是採用了最小二乘法計算(證明比較冗長略去)。這種方式的優點是計算簡單,但是要求資料矩陣x滿秩,並且當資料維數較高時計算很慢;這時候我們應該考慮使用梯度下降法或者是隨機梯度下降(同logistic回歸中的思想完全一樣,而且更簡單)等求解。這裡對估計的好壞採用了相關係數進行度量。

這裡的txt中包含了x0的值,也就是下圖中前面的一堆1,但是一般情況下我們是不給出的,也就是根據乙個x**y,這時候我們會考慮到計算的方便也會加上乙個x0。

資料是這樣的

讀取資料。

standregres(xarr,yarr)

普通的線性回歸,這裡用的是最小二乘法

畫出擬合的效果

calccorrcoef(xarr,yarr,ws)

計算相關度,用的是numpy內建的函式

結果:

這裡的想法是:我們賦予**點附近每乙個點以一定的權值,在這上面基於最小均方差來進行普通的線性回歸。這裡面用「核」(與支援向量機相似)來對附近的點賦予最高的權重。這裡用的是高斯核:

根據計算公式計算出再testpoint處的估計值,這裡要給出k作為引數,k為1的時候演算法退化成普通的線性回歸。k越小越精確(太小可能會過擬合)求解用最小二乘法得到如下公式:

lwlrtest(testarr,xarr,yarr,k=1.0)

因為lwlr需要指定每乙個點,這裡把整個通過迴圈算出來了

lwlrtestplot(xarr,yarr,k=1.0)

將結果繪製成影象

結果:

(3)基於bp神經網路和遺傳演算法,以及馬爾科夫模型的實戰**競賽

比如說現在用bp、svm、hmm等演算法研究做程式化的人很多

線性回歸之普通最小二乘

from sklearn import linear model reg linear model.linearregression print reg.fit 0,0 1,1 2,2 0,1,2 linearregression copy x true,fit intercept true,n j...

sklearn 最小二乘線性回歸

sklearn是機器學習中的乙個常用的python第三方模組,裡面對機器學習的許多方法進行了封裝,在進行機器學習的任務時,許多常用的演算法可在這個模組中直接呼叫。並且sklearn中還提供了許多可用於分類 回歸的優質資料集。使用好sklearn最直接的方法就是仔細閱讀官方 sklearn就像是乙個模...

線性回歸 最小二乘 diabetes

資料集 特徵 age 年齡 性別 bmi 體質指數 bp 血壓 s1,s2,s3,s4,s4,s6 六種血清的化驗資料 標籤 value 一年後疾病進展的量化指標 一 載入庫 import numpy as np import pandas as pd from sklearn import dat...