【Python】使用 Scikit-Learn 庫(機器學習)

2025年02月17日03:42:05 科技 1098

【Python】使用 Scikit-Learn 庫(機器學習) - 天天要聞

載入數據集

與您的機器學習實驗數據集一起工作

from sklearn import datasets
iris = datasets.load_iris()
X, y = iris.data, iris.target

2. 將數據分為訓練集和測試集

將您的數據劃分,分配部分用於訓練和評估:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

3. 訓練模型

使用 randomForestClassifier 訓練 ML 模型:

from sklearn.ensemble import randomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)

4. 進行預測

訪問模型預測:

predictions = model.predict(X_test)

5. 評估模型性能

為了評估您的模型,測量其在預測中的準確性:

from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, predictions)
print(f"Model accuracy: {accuracy}")

6. 使用交叉驗證

使用交叉驗證:

from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5)
print(f"Cross-validation scores: {scores}")

7. 特徵縮放

創建您特徵的適當比例,使模型能夠更有效地學習:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

8. 網格搜索參數調整

為了優化您模型的參數,尋求最佳組合:

from sklearn.model_selection import GridSearchCV
param_grid = {'n_estimators': [10, 50, 100], 'max_depth': [None, 10, 20]}
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_train, y_train)

9. 管道創建

為了簡化您的數據處理和建模步驟,打造一個無縫的流程:

from sklearn.pipeline import Pipeline
pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('classifier', RandomForestClassifier())
])
pipeline.fit(X_train, y_train)

10. 保存和載入模型

為了保護您的模型:

import joblib
# Saving the model
joblib.dump(model, 'model.joblib')
# Loading the model
loaded_model = joblib.load('model.joblib')

使用 Plotly 庫(互動式數據可視化

創建基本折線圖

創建折線圖:

import plotly.graph_objs as go
import plotly.io as pio
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines'))
pio.show(fig)

創建散點圖

創建散點圖:

fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))
pio.show(fig)

3. 創建柱狀圖

創建柱狀圖:

categories = ['A', 'B', 'C', 'D', 'E']
values = [10, 20, 15, 30, 25]
fig = go.Figure(data=go.Bar(x=categories, y=values))
pio.show(fig)

4. 創建餅圖

創建餅圖:

labels = ['Earth', 'Water', 'Fire', 'Air']
sizes = [25, 35, 20, 20]
fig = go.Figure(data=go.Pie(labels=labels, values=sizes))
pio.show(fig)

5. 創建直方圖

創建直方圖:

data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
fig = go.Figure(data=go.Histogram(x=data))
pio.show(fig)

6. 創建箱線圖

創建箱線圖:

data = [1, 2, 2, 3, 4, 4, 4, 5, 5, 6]
fig = go.Figure(data=go.Box(y=data))
pio.show(fig)

7. 創建熱圖

創建熱圖:

import numpy as np
z = np.random.rand(10, 10)  # Generate random data
fig = go.Figure(data=go.Heatmap(z=z))
pio.show(fig)

8. 創建 3D 曲面圖

創建 3D 曲面圖:

z = np.random.rand(20, 20)  # Generate random data
fig = go.Figure(data=go.Surface(z=z))
pio.show(fig)

9. 創建子圖

創建子圖:

from plotly.subplots import make_subplots
fig = make_subplots(rows=1, cols=2)
fig.add_trace(go.Scatter(x=x, y=y, mode='lines'), row=1, col=1)
fig.add_trace(go.Bar(x=categories, y=values), row=1, col=2)
pio.show(fig)

10. 創建互動式時間序列

與時間序列一起工作:

import pandas as pd
dates = pd.date_range('20230101', periods=5)
values = [10, 11, 12, 13, 14]
fig = go.Figure(data=go.Scatter(x=dates, y=values, mode='lines+markers'))
pio.show(fig)

科技分類資訊推薦

10.19萬起可到手!第四代CS75PLUS鯨悅版上市,多項同級唯一 - 天天要聞

10.19萬起可到手!第四代CS75PLUS鯨悅版上市,多項同級唯一

3月2日,長安汽車第四代CS75PLUS鯨悅版正式上市。作為長安汽車智能化戰略「北斗天樞計劃2.0」發布後的又一重磅新車,第四代CS75PLUS鯨悅版越級搭載全球首發500Bar高壓直噴新藍鯨發動機、訊飛星火AI大模型、725L下沉式可變後備箱、L2級輔助駕駛
12.59萬元起!智能插混獵手啟辰全新大V DD-i虎鯨上市 - 天天要聞

12.59萬元起!智能插混獵手啟辰全新大V DD-i虎鯨上市

2月28日,啟辰全新大V DD-i虎鯨在廣州長隆領潮上市,限時權益價12.59萬元起,以舊換新價9.99萬元起。同時發布會上,啟辰事業總部總部長王保軍為用戶帶來了鯨喜現金禮、鯨喜煥新禮、鯨喜金融禮、鯨喜質保禮、鯨喜流量禮、鯨喜推薦禮等6重超值鯨喜豪禮,主打一個
27英寸144Hz顯示器僅549元 這是真的值 - 天天要聞

27英寸144Hz顯示器僅549元 這是真的值

優派推出VA27G25顯示器,首發價格極為親民,不超過549元。這款顯示器採用了27英寸的IPS面板,為用戶帶來了寬廣的視覺體驗。在顯示效果方面,VA27G25擁有8bit的色深,能夠呈現出更加豐富的色彩層次。其可視角度達到了178度(水平和垂直),確保了用戶在不同角度下都能獲得清晰的畫面。同時,該顯示器還具備FHD級別的解析度,...
太逆天了!RTX 5080顯存超頻到36GHz - 天天要聞

太逆天了!RTX 5080顯存超頻到36GHz

RTX 5080顯卡所搭載的GDDR7顯存,其等效頻率最高可達30GHz(數據率為36Gbps),但實際上這是從原生32GHz降頻而來的,預示著其蘊含著可觀的超頻潛力。此前,華碩的GPU Tweak II軟體已經能夠支持GDDR7顯存的超頻操作,並成功將頻率推高至36GHz,但這一功能僅限於華碩自家的顯卡產品。而今,另一款知名超頻軟體——MSI Afterb
一家互聯網法院的6年半:6734件涉網路消費虛假宣傳案 - 天天要聞

一家互聯網法院的6年半:6734件涉網路消費虛假宣傳案

北京亦庄華聯購物中心,一家線下店的「網購@」廣告牌。(視覺中國|供圖) 6734件。這是北京互聯網法院成立6年半以來受理的涉網路消費虛假宣傳案件的數量。北京互聯網法院成立於2018年9月,截至2025年2月底,受理涉網路消費虛假宣傳案件整體呈上升態勢,80%以上的案由為信息網路買賣合同糾紛。2025年3月13日,北京互聯網法院...
一文掌握Python內部函數:函數作為返回和閉包 - 天天要聞

一文掌握Python內部函數:函數作為返回和閉包

在 Python 中,函數被認為是一等公民,這意味著它們可以像對待任何其他對象一樣對待。這種對一類函數的支持允許使用高階函數,這些函數可以接受其他函數作為參數或返回函數作為結果。這個強大的功能增強了 Python 編程的靈活性和表現力,允許
144Hz高刷顯示器只賣549元 優派上架全新入門產品 - 天天要聞

144Hz高刷顯示器只賣549元 優派上架全新入門產品

優派推出全新顯示器產品VA27G25,首發價格不超過549元。這款顯示器採用了27英寸IPS面板,1080P解析度,原生/OC刷新率120/144Hz,響應時間GtG/MPRT分別為4/1ms。其色深為8bit,可視角度達到178度,典型亮度為400尼特,對比度為1500:1,sRGB色域覆蓋率達到99%,併兼容AMD FreeSync技術。此外,VA27G