【機器學習】嶺回歸

在這里插入圖片描述

import numpy as npimport matplotlib.pyplot as plt
%matplotlib inlinefrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error,r2_score
from sklearn import datasets# CV crosss validation :交叉驗證
from sklearn.linear_model import LinearRegression,Ridge,Lasso,ElasticNet,ElasticNetCV,LassoCV
diabetes = datasets.load_diabetes()
X = diabetes['data']
y = diabetes['target'] 
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.15) 
lr = LinearRegression()lr.fit(X_train,y_train)# 回歸問題的得分,不是準確率
lr.score(X_test,y_test)

0.508409427784998

'''The coefficient R^2 is defined as (1 - u/v), where u is the residual
sum of squares ((y_true - y_pred) ** 2).sum() and v is the total
sum of squares ((y_true - y_true.mean()) ** 2).sum().'''
u = ((y_test - y_)**2).sum()
v = ((y_test - y_test.mean())**2).sum()
r2 = 1 - u/v
r2

0.508409427784998

y_ = lr.predict(X_test)
display(y_.round(0),y_test)

array([192., 85., 134., 138., 264., 191., 142., 141., 291., 91., 253.,
174., 164., 153., 167., 83., 229., 169., 92., 206., 174., 78.,
197., 53., 163., 157., 104., 139., 211., 106., 77., 125., 117.,
170., 82., 183., 162., 164., 218., 228., 181., 126., 169., 100.,
120., 69., 211., 168., 111., 169., 187., 204., 163., 133., 154.,
157., 165., 76., 153., 82., 114., 115., 97., 148., 71., 186.,
165.])

array([164., 181., 124., 142., 308., 122., 185., 168., 270., 74., 281.,
52., 109., 246., 181., 92., 99., 122., 91., 265., 143., 59.,
131., 48., 216., 55., 65., 93., 288., 118., 77., 97., 61.,
258., 51., 163., 144., 185., 296., 281., 141., 135., 171., 69.,
177., 83., 220., 235., 109., 138., 257., 297., 151., 170., 210.,
259., 110., 55., 185., 42., 87., 96., 84., 97., 134., 129.,
131.])

r2_score(y_test,y_)

0.508409427784998

mean_squared_error(y_test,y_)

2684.848466337077

使用嶺回歸

lr = LinearRegression()lr.fit(X_train,y_train)print(lr.score(X_test,y_test))y_ = lr.predict(X_test)mean_squared_error(y_test,y_)

0.508409427784998

2684.848466337077

rigde = Ridge(alpha=0.001)rigde.fit(X_train,y_train)print(rigde.score(X_test,y_test))y_ = rigde.predict(X_test)mean_squared_error(y_test,y_)

0.5077536734066447

2688.429904298921

在劃分較小數的時候使用np.logspace(-5,1,50),精準效率優于np.linspace(0.01,5,50)

在這里插入圖片描述在這里插入圖片描述

from sklearn.linear_model import RidgeCV ridgeCV = RidgeCV(alphas=np.logspace(-5,1,50),scoring='r2',cv = 6)ridgeCV.fit(X_train,y_train)y_ = ridgeCV.predict(X_test)
r2_score(y_test,y_)

0.5021580806301859

ridgeCV = RidgeCV(alphas=np.linspace(0.01,5,50),scoring='r2',cv = 6)ridgeCV.fit(X_train,y_train)y_ = ridgeCV.predict(X_test)
r2_score(y_test,y_)

0.5006336933433428

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456115.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456115.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456115.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

P1057 傳球游戲

題目描述 上體育課的時候,小蠻的老師經常帶著同學們一起做游戲。這次,老師帶著同學們一起做傳球游戲。 游戲規則是這樣的:n個同學站成一個圓圈,其中的一個同學手里拿著一個球,當老師吹哨子時開始傳球,每個同…

Keepalived 添加腳本配置監控haproxy方案

作者:風過無痕-唐出處:http://www.cnblogs.com/tangyanbo/ 上一篇文章已經講到了keepalived實現雙機熱備,且遺留了一個問題 master的網絡不通的時候,可以立即切換到slave,但是如果只是master上的應用出現問題的時候&am…

H.264編解碼標準的核心技術(提供相關流程圖)

最近在學習H.264編解碼知識,上網搜了不少資料看,發現大多數中文資料中都缺少相應的圖片,例如編解碼流程圖、編碼模板等,這對加深理解是很有幫助 的。木有辦法,只好回去潛心閱讀《H.264_MPEG-4_Part_10_White_Paper》&a…

【機器學習】總結:線性回歸求解中梯度下降法與最小二乘法的比較

在線性回歸算法求解中,常用的是最小二乘法與梯度下降法,其中梯度下降法是最小二乘法求解方法的優化,但這并不說明梯度下降法好于最小二乘法,實際應用過程中,二者各有特點,需結合實際案例具體分析。 最后有…

struts2學習(3)struts2核心知識II

一、struts.xml配置:                                                   1.分模塊配置方法: 比如某個系統多個模塊,我們把資產管理模塊和車輛管理模塊,分開,在總…

【機器學習】邏輯斯蒂回歸概率計算和手動計算對比

二分類,邏輯斯蒂回歸概率計算 import numpy as np from sklearn import datasets from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_splitX,y datasets.load_iris(True)cond y!2X X[cond] y y[cond]resul…

WPF快速指導2:模板

WPF快速指導2:模板 本文摘要: 1:模板作用; 2:樣式模板; 3:數據模板; 4:如何使用ControlTemplate; 5:如何使用DataTempla…

五個最佳媒體格式轉換器

我們經常會遇到下載的視頻文件格式不對,無法在其他播放設備(如手機、DVD)中使用的問題,現在,我們介紹五個功能強大且易于使用的媒體轉換器,用于轉換不同類型的視頻文件。   Super (Windows) Super是一個免…

【機器學習】六種算法在人臉補全中的應用比較(K緊鄰,線性,決策樹,嶺回歸,套索回歸,ElasticNet)

需求: 根據人的上半邊臉預測下半邊臉,用各種算法取得的結果與原圖比較 思考: 這是一個回歸問題,不是分類問題(人臉數據不固定) 數據集一共包含40個人,每一個人10張照片,分布規律 每…

性能優化之NSDateFormatter

為什么要優化NSDateFormatter?首先,過度的創建NSDateFormatter用于NSDate與NSString之間轉換,會導致App卡頓,打開Profile工具查一下性能,你會發現這種操作占CPU比例是非常高的。據官方說法,創建NSDateForma…

QuickTime文件格式解析

QuickTime文件格式解析Peter Lee 2008-06-14 一、簡介 QuickTime是Apple公司開發的一套完整的多媒體平臺架構,可以用來進行多種媒體的創建,生產,和分發,并為這一過程提供端到端的支持:包括媒體的實時捕捉,…

python的數據類型轉換

數據類型轉換 將數據由當前類型變化為其他類型的操作就是數據類型轉換。數據類型轉換分為兩類,分別是自動數據類型轉換 和 強制數據類型轉換。 自動轉換(隱式轉換) 自動轉換時程序根據運算要求進行的轉換,不許要人工干預。 1.自動類型轉換不需要人工干…

Linux文件屬性及如何修改文件屬性

ls -al:顯示文件的文件名與相關屬性并列出所有文件詳細的權限與屬性 dr-xr-x---. 7 root root 4096 Apr3 12:31 . 權限 連接 所有者 用戶組 文件容量 修改日期 文件名 第一個字符代表這個文件是“目錄,文件&#x…

SyntaxError:identifier starts immediately after numeric literal

1、錯誤描寫敘述2、錯誤原因因為在改動方法傳參的過程,須要傳個id,可是這個id是字符串類型,傳入的是數值型3、解決的方法在傳參時,須要加入“”,變成字符串類型User.modify("id");

python中的運算和運算符

運算和運算符 運算: 由一個以上的值經過變化得到新值得過程,就是運算。 運算符: 用于運算的符號,就是運算符 運算的分類: 1.算數運算 2.比較運算/關系運算 3.賦值運算 4.邏輯運算 5.位運算 6.成員運算 7.身份運算算術…

【數據分析】reshape(-1,1)和numpy的廣播機制

在創建DataFrame的時候常常使用reshape來更改數據的列數和行數。 reshape可以用于numpy庫里的ndarray和array結構以及pandas庫里面的DataFrame和Series結構。 源數據 reshape函數 reshape(行,列)可以根據指定的數值將數據轉換為特定的行數和…

藍橋杯-組素數-java

/* (程序頭部注釋開始) * 程序的版權和版本聲明部分 * Copyright (c) 2016, 廣州科技貿易職業學院信息工程系學生 * All rights reserved. * 文件名稱: 藍橋杯賽題 * 作 者: 彭俊豪 * 完成日期&#xf…

AVI文件規范

AVI文件規范PeterLee 2007-10-14 一、AVI文件簡介 AVI的英文全稱為Audio Video Interleaved,即音頻視頻交錯格式,是將語音和影像同步組合在一起的文件格式。AVI于1992年被Microsoft公司推出,隨Windows3.1一起被人們所認識和熟知。AVI文件格式…

python中的流程控制

流程控制 流程: 計算機執行代碼的順序,就是流程。 流程控制: 對計算機代碼執行順序的控制,就是流程控制。 流程分類: 流程控制一共分為三類,分別是 順序結構、分支(選擇)結構、循環結構。 順序結構 順序…

tomcat jdbc SlowQueryReport的實現解讀

為什么80%的碼農都做不了架構師?>>> ##序 tomcat提供了JdbcInterceptor可以用來監控jdbc的執行情況,默認提供了好幾個現成的interceptor可以用,SlowQueryReport以及SlowQueryReportJmx就是其中的兩個。 ##JdbcInterceptor的基本原…