每個樣本有多個特徵
向量化
目標: 使
多元線性回歸的正規方程解:
求出:缺點:時間複雜度高:o(n^3)
優點:不需要考慮量綱的問題
每個係數對應乙個特徵,係數可以用於描述每個特徵對於結果的貢獻程度
所以實現的時候是將截距和係數分開返回給使用者
封裝成類:
import numpy as np
from sklearn.metrics import r2_score #r^2評價方式(取值範圍是0-1,越大說明效能越好)
class linearregression:
def __init__(self):
"""初始化模型"""
self.coef_ = none #係數
self.interception_ = none #截距
self._theta = none
def fit_normal(self, x_train, y_train):
"""根據訓練資料集訓練模型---採用正規方程的解法"""
assert x_train.shape[0] == y_train.shape[0]
x_b = np.hstack([np.ones((len(x_train), 1)), x_train])
self._theta = np.linalg.inv(x_b.t.dot(x_b)).dot(x_b.t).dot(y_train)
self.interception_ = self._theta[0]
self.coef_ = self._theta[1:]
return self
def predict(self, x_predict):
"""返回表示x_predict的結果向量"""
assert self.coef_ is not none and self.interception_ is not none
assert x_predict.shape[1] == len(self.coef_)
x_b = np.hstack([np.ones((len(x_predict), 1)), x_predict])
y_predict = x_b.dot(self._theta)
return y_predict
def score(self, x_test, y_test):
y_predict = self.predict(x_test)
return r2_score(y_test, y_predict)
def __repr__(self):
"""多元線性回歸"""
呼叫:
from sklearn import datasets
boston = datasets.load_boston()
x = boston.data
y = boston.target
x = x[y < 50.0]
y = y[y < 50.0]
# 劃分資料集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=666)
# 模型
from linearregression import linearregression
reg = linearregression()
reg.fit_normal(x_train, y_train)
print(reg.coef_)
print(reg.score(x_test, y_test))
from sklearn.linear_model import linearregression
reg = linearregression()
reg.fit(x_train, y_train)
# 檢視係數和截距
print(reg.coef_)
print(reg.intercept_)
print(reg.score(x_test, y_test))
from sklearn.neighbors import kneighborsregressor
使用網格搜尋確定最好的超引數(from sklearn.model_selection import gridsearchcv)
可以通過可解釋性採集有助於分類的更多特徵
典型的引數學習
只能解決回歸問題
對資料有假設,線性
對資料具有強解釋性
對比knn:
非引數學習
回歸分類問題都能解決
對資料沒有假設
前面都是使用多元線性回歸的正規方程解,複雜度大
後面將介紹梯度下降法
多元線性回歸
多元線性回歸的基本原理和基本計算過程與一元線性回歸相同,但由於自變數個數多,計算相當麻煩,一般在實際中應用時都要借助統計軟體。介紹多元線性回歸的一些基本問題。但由於各個自變數的單位可能不一樣,比如說乙個消費水平的關係式中,工資水平 受教育程度 職業 地區 家庭負擔等等因素都會影響到消費水平,而這些影...
多元線性回歸
from numpy import genfromtxt 用來讀取資料轉化為矩陣 from sklearn import linear model 含有回歸的模型 datapath r c users qaq desktop delivery dummy.csv 路徑 deliverydata ge...
多元線性回歸
比如有乙個住房 的資料集,可能會有多個不同的模型用於擬合,選擇之一像是這種二次模型 0 1x 2x2,因為直線並不能很好的擬合這些資料。但是現在如果用二次函式去考慮,可能會想到二次函式在最高點之後會下降,但是 並不會下降,並不合理,那我們可以用 0 1x 2x2 3x3這樣的三次模型。如果像這樣選擇...