線性回歸通過乙個或者多個自變數與因變數之間之間進行建模的回歸分析。其中特點為乙個或多個稱為回歸係數的模型引數的線性組合
由於在**過程中,並非是完全線性的函式,對於部分測試點存在偏差,我們只是找到乙個比較好的函式能夠保證基本上所有的點都在這個線性函式的上下浮動,因此存在一定的誤差--------稱為損失函式(用於描述誤差大小)
為解決這個問題我們可以用兩種方法去處理:
接下來,我們講解一下這兩個方法:
• sklearn.linear_model.
linearregression •
正規方程 •
sklearn.linear_model.
sgdregressor •
梯度下降
coef_:就是就是w值,即權重
• sklearn.linear_model.linearregression()
• 普通最小二乘線性回歸 •
• coef
_:回歸係數 •
• sklearn.linear_model.sgdregressor()
•通過使用
sgd最小化線性模型 •
• coef
_:回歸係數
from sklearn.datasets import load_boston
from sklearn.preprocessing import standardscaler
from sklearn.model_selection import train_test_split
from sklearn.linear_model import linearregression, sgdregressor
from sklearn.metrics import mean_squared_error
def mylinear():
"""線性回歸進**價**
"""# 獲取資料
lb = load_boston()
# 資料處理
x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=0.25)
# 特徵工程 兩組資料進行標準化處理(因為兩組資料維度不同,分開處理)
sd = standardscaler()
# 特徵值得處理
x_train = sd.fit_transform(x_train)
x_test = sd.transform(x_test)
# 目標值的處理 : 需要建立新的處理物件
sd_y = standardscaler()
y_train = sd_y.fit_transform(y_train.reshape(-1, 1))
y_test = sd_y.transform(y_test.reshape(-1, 1))
# estimator測試
# ①正規方程求解
lr = linearregression()
lr.fit(x_train, y_train)
print(lr.coef_)
# 房價**
y_lr_predict = sd_y.inverse_transform(lr.predict(x_test))
print("真實**:", sd_y.inverse_transform(y_test))
print("11111111111111111111")
print("正規方程測試集**結果:", y_lr_predict)
# 回歸評估
result1 = mean_squared_error(sd_y.inverse_transform(y_test), y_lr_predict)
print("正規方程的評估:", result1)
# ①梯度下降求解
sgd = sgdregressor()
sgd.fit(x_train, y_train)
print(sgd.coef_)
# 房價**
y_sdg_predict = sd_y.inverse_transform(sgd.predict(x_test))
print("真實**:", sd_y.inverse_transform(y_test))
print("11111111111111111111")
print("梯度下降測試集**結果:", y_sdg_predict)
# 回歸評估
result2 = mean_squared_error(sd_y.inverse_transform(y_test), y_sdg_predict)
print("梯度下降的評估:", result2)
def main():
mylinear()
if __name__ == '__main__':
main()
利用的是均方誤差評價機制
• sklearn.metrics.
mean_squared_error
• mean_squared_error
(y_true
, y_pred )
• 均方誤差回歸損失 •
y_true
:真實值 •
y_pred
:**值 •
return:
浮點數結果
機器學習之十大機器學習演算法
邏輯回歸 機器學習實戰書籍和 分享 pca簡介 機器學習演算法篇 從為什麼梯度方向是函式變化率最快方向詳談梯度下降演算法 資源 有沒有必要把機器學習演算法自己實現一遍?推薦 用python實現 pattern recognition and machine learning 裡的演算法 推薦 斯坦福...
機器學習十大常用演算法
根據一些 feature 進行分類,每個節點提乙個問題,通過判斷,將資料分為兩類,再繼續提問。這些問題是根據已有資料學習出來的,再投入新資料的時候,就可以根據這棵樹上的問題,將資料劃分到合適的葉子上。在源資料中隨機選取資料,組成幾個子集源資料,這幾個子集得到幾個決策樹,將新資料投入到這 m 個樹中,...
十大機器學習演算法之AdaBoost
adaboost是一種迭代演算法,核心思想是針對同乙個訓練集去訓練多個不同的分類器 弱分類器 訓練完畢之後,把所有這些弱分類器進行融合得到最終的分類器 強分類器 演算法本身是通過改變資料分布來實現的,首先根據每次訓練結束之後每個樣本是否分類正確然後賦予不同的權重,然後把新的資料集傳遞到下一層訓練下乙...