風火程式設計 及旗下學習之拉索回歸lasso

2021-09-10 01:50:20 字數 1421 閱讀 7961

描述

在多項式回歸的基礎上,為了防止過擬合現象, 在損失函式中加入l1正則項(係數絕對值的和乘以alpha), 防止係數過大. 提高模型泛化能力.

超引數為最高項次數和alpha

alpha過大得到水平直線

alpha過小會得到過擬合曲線

會趨向使一些係數為0

非線性回歸, 可用於特徵選擇

介面

import numpy as np

from sklearn.linear_model import ridge, lasso

from sklearn.metrics import mean_squared_error

from sklearn.model_selection import train_test_split

from sklearn.pipeline import pipeline

from sklearn.preprocessing import polynomialfeatures

from sklearn.preprocessing import standardscaler

def lassoregressdion(degree=2, alpha=0.1):

"""拉索回歸模型的封裝

:param degree: 最高次冪

:param alpha: 正則項係數

:return: 拉索回歸的模型

"""lasso = pipeline([

('poly', polynomialfeatures(degree=degree, include_bias=true, interaction_only=false)),

('ss', standardscaler()),

('lasso', lasso(alpha=alpha))

])return lasso

if __name__ == '__main__':

x = np.random.uniform(-3, 3, size=100)

y = 0.5 * x ** 2 + 2 + np.random.normal(0, 1, 100)

x = x.reshape(-1, 1)

x_train, x_test, y_train, y_test = train_test_split(x, y)

lasso = ridgeregressdion(degree=10, alpha=0.01)

lasso.fit(x_train, y_train)

y_test_predict = lasso.predict(x_test)

err = mean_squared_error(y_test, y_test_predict)

print(err)

風火程式設計 機器學習之隨機森林

描述 整合大量的決策樹模型的整合學習演算法.每棵樹的訓練樣本隨機,樹的 切分 隨機,特徵選取隨機 適用於資料準確度要求高的場景.樹越多精準性越好.可以使用整合學習和決策樹的超引數.極其隨機森林的節點劃分使用隨機特徵,隨機閾值.不考慮資訊熵,隨機分割.高方差,低偏差.介面 隨機森林 randomfor...

Linux下學習python程式設計

一 環境選擇 在windows下習慣使用anaconda的環境,所以還是打算繼續使用他們。anaconda環境整合度高。三 安裝 將anaconda的安裝包複製到主資料夾裡 調出輸入終端 ctrl alt t 輸入命令 bash anaconda3 2.4.1 linux x86 64.sh 按en...

windows系統下學習shell 程式設計

很多公司的電腦,由於許可權等要求,不太容易裝雙系統。為什麼要裝雙系統呢,因為網際網路技術工種的基本工作要求,包含了對linux系統的搭建和使用。如果想使用linux系統,就必須要求會使用shell程式設計。那麼在windows環境下,怎麼來學習並使用shell程式設計呢,我們可以安裝git 不需要雙...