scikit-learn實現線性回歸

要學習scikit-learn,我們必須要到scikit-clearn的官網中去查看公式和原理
scikit-learn 官網
scikit-learn 中文社區
進入官網一以后我們找到回歸,然后再有監督學習中找到線性模型

scikit-learn實現簡單的線性回歸

公式:

在這里插入圖片描述

L2范數是指向量中每個元素的平方和的平方根。在數學中,L2范數也稱為歐幾里得范數,通常用 ∣ ∣ x ∣ ∣ 2 ||x||_2 ∣∣x2? 表示,其中x是一個向量。L2范數可用于衡量向量的大小或長度。

L2范數在機器學習和數據科學中經常用于正則化和優化問題中,例如嶺回歸和支持向量機等算法。在這些情況下,通過對損失函數添加L2正則化項,可以避免過擬合并提高模型的泛化能力。同時,L2范數也被用來作為相似性度量的度量標準,如余弦相似性。

L2范數公式:
∣ ∣ x ∣ ∣ 2 = ( ∑ ∣ x i ∣ 2 ) ||x||_2 = \sqrt{(∑|x_i|^2)} ∣∣x2?=(xi?2) ?

代碼實現 :

import numpy as np 
import matplotlib.pyplot as plt 

模擬數據

X = np.linspace(0, 10, num=30).reshape(-1, 1)
# 斜率和截距,隨機生成
w = np.random.randint(1, 5, size=1)
b = np.random.randint(1, 10, size=1)
# 根據一元一次方程計算目標值y并加上‘噪聲’,數據有上下波動
y = X * w + b +np.random.randn(30,1)  # 注意要添加噪聲避免出現過擬合
plt.scatter(X,y)  # 將圖形展現出來

計算斜率和截距

from sklearn.linear_model import LinearRegression
# 創建對象 
model = LinearRegression(fit_intercept=True) # fit_intercept :是否計算裁距
model.fit(X,y)
print("算法求得的系數,斜率",model.coef_)
print('算法求得的截距',model.intercept_)

和算法求得的斜率和截距進行對比驗證

print("這是真實的斜率和截距是",w,b)

獲取擬合后的圖形

plt.scatter(X,y,color='red')
plt.plot(X,model.coef_*X +model.intercept_,color='green')

擬合圖形

這個時候我們要哦特別注意的是:
model = LinearRegression(fit_intercept=False) # fit_intercept
在使用 LinearRegression創建對象的時候,fit_intercept參數開啟則計算裁距
如果不計算裁距情況,如何獲得集合的圖形

from sklearn.linear_model import LinearRegression
# 創建對象 
model = LinearRegression(fit_intercept=False) # fit_intercept :是否計算裁距
X_ = np.concatenate([X,np.full(shape=(30,1),fill_value=1)],axis=1)
model.fit(X_,y)
print("算法求得的系數,斜率",model.coef_)
print('算法求得的截距',model.intercept_)
plt.scatter(X,y,color='red')
plt.plot(X,model.coef_[0,0]* X +model.coef_[0,1],color='green')

在這里插入圖片描述
獲取系數

np.linalg.inv(X_.T.dot(X_)).dot(X_.T).dot(y)

獲取系數

scikit-learn實現多元的線性回歸

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D  # 繪制三維圖像

模擬數據

# 轉化為矩陣
x1 = np.random.randint(-150, 150, size=(300, 1))
x2 = np.random.randint(0, 300, size=(300, 1))
# 斜率和截距,都是隨機生成的
w = np.random.randint(1, 5, size=2)
b = np.random.randint(1, 10, size=1)
# 根據二元一次方程計算目標值y 并且加上“噪聲”,讓數據上下波動
y = x1 * w[0] + x2 * w[1] + b + np.random.randn(300, 1)

創建對象

from sklearn.linear_model import LinearRegression
model = LinearRegression()
X = np.concatenate([x1,x2],axis = 1)
model.fit(X,y)
print(model.coef_,model.intercept_)

輸出真實的斜率和系數用于與算法得出的數值進行對比

print(w,b)

生成擬合圖形

# 特征1:x1
x_axis = np.linspace(-150,150,num=500)
# 特征2 :x2 
y_axis = np.linspace(0,300,num=500)
# 方程 斜率,截距
Z_axis = x_axis * model.coef_[0,0] +y_axis * model.coef_[0,1]+ model.intercept_
fig = plt.figure(figsize=(9,6))
ax = Axes3D(fig)
ax.scatter(x1,x2,y) #三維散點圖
ax.plot(x_axis,y_axis,Z_axis)

多元線性回歸
堅持學習,整理復盤
在這里插入圖片描述

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

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

相關文章

Java+Swing: 主界面的窗體 整理8

主界面的寫法跟之前登錄界面的窗體寫法大致相同,在主界面中主要是窗體的大小的設置 package com.student_view;import com.utils.DimensionUtil; import sun.applet.Main;import javax.swing.*; import java.awt.*; import java.net.URL;/*** Author:xie…

C# --線程的進化史

1.C# 線程的進化史可以追溯到 .NET Framework 的早期版本和 C# 語言的發展過程 Thread 類(.NET Framework 1.0):最初,C# 中使用 Thread 類來創建和管理線程。通過實例化 Thread 類并調用其 Start 方法,可以在應用程序…

全面覆蓋,無所不包:C++ 編程必備指南 | 開源日報 No.99

fffaraz/awesome-cpp Stars: 51.0k License: MIT 這個項目是一個精心策劃的 C(或者 C) 框架、庫、資源和其他有趣東西的列表。它收集了各種標準庫,如 STL 容器和算法;不同領域的框架,比如人工智能、異步事件循環等;以及一系列功…

【人工智能Ⅰ】實驗7:K-means聚類實驗

實驗7 K-means聚類實驗 一、實驗目的 學習K-means算法基本原理,實現Iris數據聚類。 二、實驗內容 應用K-means算法對iris數據集進行聚類。 三、實驗結果及分析 0:輸出數據集的基本信息 參考代碼在main函數中首先打印了數據、特征名字、目標值、目標…

【上海大學數字邏輯實驗報告】四、組合電路(三)

一、 實驗目的 掌握多路選擇器74LS151的原理。掌握譯碼器74LS138的原理。學會在Quartus II上使用多路選擇74LS151設計電路。學會在Quartus II上使用譯碼器74LS138設計電路。 二、 實驗原理 多路選擇器又稱數據選擇器或多路開關,它是一種多路輸入單路輸出的組合邏…

HHDESK右鍵管理簡介

在HHDESK管理文件,除了基本的打開、刪除、復制、粘貼、重命名外,還有多種便捷編輯方式。 可以分別以下列模式打開文檔: 文本模式即是以文本編輯器打開文檔。 1 二進制模式 可進行二進制編輯。 2 JSON模式 可對JSON文件進行直觀的解析…

機器學習中的特征工程

1 特征工程概述 特征工程是機器學習中的一個關鍵步驟,在機器學習領域中占有非常重要的地位,是機器學習中不可或缺的一部分,下圖展示了一個常規的機器學習流程: 特征工程涉及從原始數據中提取、選擇和轉換特征,以改善模…

Lombok 處理異常@SneakyThrows 注解

文章目錄 注解的介紹具體示例 注解的介紹 SneakyThrows 是 Lombok 框架提供的一個注解,它可以用于在方法中拋出受檢異常時,不用顯式地對異常進行處理,而是將異常包裝成 RuntimeException 拋出 使用 SneakyThrows 注解后,編譯器會…

“輕松管理文件,一鍵導出表格,讓您的歸檔工作井井有條“

在忙碌的工作中,我們經常會被大量的文件和數據所困擾。如何有效地管理和整理這些資料,成為了一個讓人頭疼的問題。今天,我們向您介紹一款強大的文件管理工具——一鍵導出表格,幫助您輕松解決這個問題。 第一步,首先我們…

區塊鏈實驗室(30) - 區塊鏈期刊:Distributed Ledger Technologies: Research and Practice

區塊鏈涉及多學科及技術,眾多期刊接收區塊鏈文章。Distributed Ledger Technologies: Research and Practice是ACM出版集團的一本期刊。 Distributed Ledger Technologies: Research and Practice創刊歷史很短,始于2022年,出版期數也不多。 載…

力扣面試150題 | 多數元素

力扣面試150題 | 多數元素 題目描述解題思路代碼實現 題目描述 給定一個大小為 n 的數組 nums ,返回其中的多數元素。多數元素是指在數組中出現次數 大于 ? n/2 ? 的元素。 你可以假設數組是非空的,并且給定的數組總是存在多數元素。 示…

Leetcode 劍指 Offer II 056. 兩數之和 IV - 輸入二叉搜索樹

題目難度: 簡單 原題鏈接 今天繼續更新 Leetcode 的劍指 Offer(專項突擊版)系列, 大家在公眾號 算法精選 里回復 劍指offer2 就能看到該系列當前連載的所有文章了, 記得關注哦~ 題目描述 給定一個二叉搜索樹的 根節點 root 和一個整數 k , 請判斷該二叉…

Java 使用oshi獲取當前服務器狀態cpu、內存、存儲等核心信息

文章目錄 簡介相關資料maven依賴oshi-官方示例獲取CUP信息代碼獲取內存信息獲取磁盤信息 簡介 OSHI 是基于 JNA 的(本地)操作系統和硬件信息庫。它不需要安裝任何其他額外的本地庫,旨在提供一種跨平臺的實現來檢索系統信息,例如操…

[ROS2] --- action

1 action介紹 ROS通信機制也會被常常用到——那就是動作。從這個名字上就可以很好理解這個概念的含義,這種通信機制的目的就是便于對機器人某一完整行為的流程進行管理。 1.1 客戶端/服務器模型 動作和服務類似,使用的也是客戶端和服務器模型&#xf…

數據結構中處理散列沖突的四種方法

1 開放定址法 1.1 定義 開放定址法就是一旦發生了沖突,就去尋找下一個空的散列地址 1.2 要求 只要散列表足夠大 空的散列地址總能找到,并將記錄存入 1.3 線性探測法 使用該公式用于解決沖突的開放定址法稱為線性探測法 對于線性探測法&#xff0c…

【異常】SpringBoot3.2.0 Description: Failed to configure a DataSource: ‘url‘ att

mybatisPlus 多數據源導致 異常 Description:Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following:If you want an embed…

通過kubeadm方式安裝k8s

虛擬機最少是 2 core,master內存最小3G,node內存最小2G. 要求的Docker版本是18.03,如果不是安裝的docker ce,版本是過舊的,可以選擇刪除后重新安裝; 也可以重新創建一個虛擬機執行以下命令。 簡單方法&am…

線性代數基礎【1】行列式

第一節 行列式的基本概念和性質 一、基本概念 ①逆序 1,2和2,1是一對逆序 ②逆序數 1,2,3,5,4的逆序數為1;1,3,2,5,4逆序數為4; ③行列式 ④余子數和代數余子數 行列式挖掉一個數(例如aij),將原行列式去掉i行j列的行列式M,則M為余子數,代數余子數記為Aij,如果(ij)為偶數…

云LIS實驗室信息管理系統源碼——實驗室信息管理解決方案

云LIS(Cloud Laboratory Information System)是一種為區域醫療提供臨床實驗室信息服務的計算機應用程序,其主要功能是協助區域內所有臨床實驗室相互協調并完成日常檢驗工作,對區域內的檢驗數據進行集中管理和共享,通過…

uniapp引入插件市場echarts圖表(l-echart)實現小程序端圖表,并修改源碼簡化使用

使用的uniapp插件:l-echart https://ext.dcloud.net.cn/plugin?id4899 注意事項 1.因為小程序有主包分包大小限制,并且uni_modules中的包也會算在主包體積中,而我項目中的圖表是在分包中使用的,所以我移動uni_modules中的l-echart圖表組件…