線性回歸(一)

2022-07-08 17:18:18 字數 2689 閱讀 2539

前文講述了大量關於線性回歸的理論知識,現在實際來看下什麼是線性回歸,先看最簡單的一元線性回歸。

回歸分析是確定**屬性(數值型)與其他變數間相互依賴的密切程度的乙個定量分析模型。

模擬一段資料如下:

x = [6,8,10,14,18]

y = [7,9,13,17.5,18]

直接看上去,不太容易能直觀的看出來這段資料是否是線性相關的,所以我們直接將資料畫出來,看下資料是否線性相關(實際的機器學習開發的過程中,一般在資料探索階段,簡單判斷,如果不太容易看,再利用皮爾斯係數等方法判斷線性相關的準確性,這裡介紹就採用簡單的判斷方式了)

import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

def basic():

plt.figure(1)

plt.title("line regresson")

plt.xlabel("x")

plt.ylabel("y")

#lst:設定x,y軸的範圍

plt.axis([0,25,0,20])

#lst: 是否顯示grid

plt.grid(true)

return plt

basic()

x = [6,8,10,12,14,18]

y = [7,9,13,17.5,19,20]

data =

plt.scatter(x,y)

plt.show()

執行最終生成的圖例如下所示:

從上圖可以發現在雜湊的點基本還是圍繞乙個直線分布於兩邊的,應該屬於一元線性分布。(後續文章將描述,如何判斷x,y值是否線性相關)。

得知x,y線性相關以後,下面我們將建立模型,希望擬合出線性模型以便**、分類。

為了能夠比較直觀的判斷準確性,將訓練的資料修改成標準的y=x+2。通過訓練希望能夠擬合出數值變化規律的擬合方程來。具體**如下:

#coding:utf-8

import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

from sklearn.linear_model import linearregression

def basic():

plt.figure(1)

plt.title("line regresson")

plt.xlabel("x")

plt.ylabel("y")

plt.axis([0,25,0,30])

plt.grid(true)

return plt

basic()

# x = np.array([6,8,10,12,14,18])

x = np.array([[6,6],[8,8],[10,10],[12,12],[14,14],[18,18]])

# y = [7,9,13,17.5,19,20]

#lst :替換成 y=x+2

y = np.array([8,10,12,14,16,20])

#lst :建立並擬合模型

model = linearregression()

#學習model.fit(x,y)

print model.coef_

print model.intercept_

#**可能的值

prdeit_x = np.array([[15,15]])

prdeit_y = model.predict(prdeit_x)

print prdeit_y

print model.score(x,y)

# plt.scatter(x,y)

# plt.show()

--執行結果如下--

[ 0.5 0.5]

2.0000

[ 17.]

1.0--------------

x = np.array([[6,6],[8,8],[10,10],[12,12],[14,14],[18,18]])

# y = [7,9,13,17.5,19,20]

#y=x+2

y = np.array([8,10.6,12.5,14.4,16,20.9])

#lst :建立並擬合模型

model = linearregression()

#學習model.fit(x,y)

print model.coef_

print model.

#**可能的值

prdeit_x = np.array([[15,15]])

prdeit_y = model.predict(prdeit_x)

print prdeit_y

print model.score(x,y)

-----返回的結果-----

[ 0.51928571 0.51928571]

[ 17.54142857]

0.99524343053

------------------

可以看到由於原始的資料發生了一些波動,不能完全匹配,的出來的評價結果也就有一定的下降了。

線性回歸模型 線性回歸模型

回歸的思想和分類有所不一樣,分類輸出的結果為離散的值,回歸輸出的是乙個連續型的值。線性回歸的思想就是試圖找到乙個多元的線性函式 當輸入一組特徵 也就是變數x 的時候,模型輸出乙個 值y h x 我們要求這個 值盡可能的準確,那麼怎麼樣才能做到盡可能準確呢?其中 表示實際值,表示 值 其中 表示實際值...

線性回歸(標準回歸)

今天我們來討論機器學習的另乙個領域 首先我們來討論利用線性回歸來 數值型資料。利用線性回歸進行 的過程就是求解回歸係數的過程,求出回歸係數後進行係數與特徵值乘積求和即可,這裡我們使用最小二乘法進行求解 ex0.txt 提取碼 dbe2 def loaddataset filename numfeat...

回歸學習 線性回歸

匯入資料 from sklearn.datasets import load boston boston load boston print boston.descr 資料分割 from sklearn.cross validation import train test split import ...