91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python機器學習庫scikit-learn如何使用

發布時間:2023-03-16 09:52:49 來源:億速云 閱讀:104 作者:iii 欄目:開發技術

這篇文章主要介紹“Python機器學習庫scikit-learn如何使用”,在日常操作中,相信很多人在Python機器學習庫scikit-learn如何使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python機器學習庫scikit-learn如何使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

前言

scikit-learn是Python中最流行的機器學習庫之一,它提供了各種各樣的機器學習算法和工具,包括分類、回歸、聚類、降維等。

scikit-learn的優點有:

  • 簡單易用:scikit-learn 的接口簡單易懂,可以讓用戶很容易地上手進行機器學習。統一的API:scikit-learn 的 API 非常統一,各種算法的使用方法基本一致,使得學習和使用變得更加方便。

  • 大量實現了機器學習算法:scikit-learn 實現了各種經典的機器學習算法,而且提供了豐富的工具和函數,使得算法的調試和優化變得更加容易。

  • 開源免費:scikit-learn 是完全開源的,而且是免費的,任何人都可以使用和修改它的代碼。

  • 高效穩定:scikit-learn 實現了各種高效的機器學習算法,可以處理大規模數據集,并且在穩定性和可靠性方面表現出色。scikit-learn因為API非常的統一而且模型相對較簡單所以非常適合入門機器學習。這里我的推薦方式是結合官方文檔進行學習,不僅有每個模型的適用范圍介紹還有代碼樣例。

線性回歸模型-LinearRegression

LinearRegression模型是一種基于線性回歸的模型,適用于解決連續變量的預測問題。該模型的基本思想是建立一個線性方程,將自變量與因變量之間的關系建模為一條直線,并利用訓練數據擬合該直線,從而求出線性方程的系數,再用該方程對測試數據進行預測。

LinearRegression模型適用于自變量和因變量之間存在線性關系的問題,例如房價預測、銷售預測、用戶行為預測等。當然,當自變量和因變量之間的關系為非線性時,LinearRegression模型的表現會比較差。此時可以采用多項式回歸、嶺回歸、Lasso回歸等方法來解決。

準備數據集

在拋開其它因素影響后,學習時間和學習成績之間存在著一定的線性關系,當然這里的學習時間指的是有效學習時間,表現為隨著學習時間的增加成績也會增加。所以我們準備一份學習時間和成績的數據集。數據集內部分數據如下:

學習時間,分數
0.5,15
0.75,23
1.0,14
1.25,42
1.5,21
1.75,28
1.75,35
2.0,51
2.25,61
2.5,49

使用LinearRegression

確定特征和目標

在學習時間和成績間,學習時間為特征,也即自變量;成績為標簽也即因變量,所以我們需要在準備好的學習時間和成績數據集中提取特征和標簽。

import pandas as pd
import numpy as np
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 讀取學習時間和成績CSV數據文件
data = pd.read_csv('data/study_time_score.csv')
# 提取數據特征學習時間
X = data['學習時間']
# 提取數據目標(標簽)分數
Y = data['分數']

劃分訓練集和測試集

在特征及標簽數據準備好以后,使用scikit-learn的LinearRegression進行訓練,將數據集劃分為訓練集和測試集。

"""
將特征數據和目標數據劃分為測試集和訓練集
通過test_size=0.25將百分之二十五的數據劃分為測試集
"""
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=0)
x_train = X_train.values.reshape(-1, 1)
model.fit(x_train, Y_train)

選擇模型,對數據進行擬合

將測試集和訓練集準備好以后,我們就可以選擇合適的模型對訓練集進行擬合,以便能夠預測出其它特征對應的目標

# 選擇模型,選擇模型為LinearRegression
model = LinearRegression()
# Scikit-learn中,機器學習模型的輸入必須是一個二維數組。我們需要將一維數組轉換為二維數組,才能在模型中使用。
x_train = X_train.values.reshape(-1, 1)
# 進行擬合
model.fit(x_train, Y_train)

得到模型參數

由于數據集只包含學習時間和成績兩個是一個很簡單的線性模型,其背后的數學公式也即y=ax+b,其中y因變量也就是成績, x自變量也即學習時間。

"""
輸出模型關鍵參數
Intercept: 截距 即b
Coefficients: 變量權重 即a
"""
print('Intercept:', model.intercept_)
print('Coefficients:', model.coef_)

回測

上面擬合模型只用到了測試集數據,下面我們需要使用測試集數據對模型的擬合進行一個回測,在使用訓練集擬合后,我們就可以對特征測試集進行預測,通過得到的目標預測結果與實際目標的值進行比較,我們就可以得到模型的擬合度了。

# 轉換為n行1列的二維數組
x_test = X_test.values.reshape(-1, 1)
# 在測試集上進行預測并計算評分
Y_pred = model.predict(x_test)
# 打印測試特征數據
print(x_test)
# 打印特征數據對應的預測結果
print(Y_pred)
# 將預測結果與原特征數據對應的實際目標值進行比較,從而獲得模型擬合度
# R2 (R-squared):模型擬合優度,取值范圍在0~1之間,越接近1表示模型越好的擬合了數據。
print("R2:", r2_score(Y_test, Y_pred))
  • 程序運行結果

  • 根據上述的代碼我們需要確定LinearRegression模型的擬合度,也就是這些數據到底適合不適合使用線性模型進行擬合,程序的運行結果如下:

預測結果:
[47.43726068 33.05457106 49.83437561 63.41802692 41.84399249 37.84880093
 23.46611131 37.84880093 26.66226456 71.40841004 18.67188144 88.9872529
 63.41802692 42.6430308  21.86803469 69.81033341 66.61418017 33.05457106
 58.62379705 50.63341392 18.67188144 41.04495418 20.26995807 77.80071653
 28.26034119 13.87765157 61.81995029 90.58532953 77.80071653 36.25072431
 84.19302303]
R2: 0.8935675710322939

到此,關于“Python機器學習庫scikit-learn如何使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苗栗县| 鲜城| 武穴市| 辛集市| 城步| 苗栗市| 安平县| 永年县| 宜章县| 湖北省| 桐庐县| 遂昌县| 衡阳县| 酒泉市| 樟树市| 南江县| 彭水| 榆树市| 连江县| 老河口市| 青河县| 温宿县| 平昌县| 民乐县| 德令哈市| 盐津县| 凤翔县| 乐至县| 大埔县| 三穗县| 宁乡县| 汝州市| 临猗县| 囊谦县| 福建省| 西安市| 永安市| 象州县| 介休市| 永春县| 酒泉市|