首頁 > 科技週邊 > 人工智慧 > 機器學習中實作隨機森林演算法的指南

機器學習中實作隨機森林演算法的指南

王林
發布: 2023-04-08 18:01:08
轉載
816 人瀏覽過

隨著機器學習模型在預測和分析資料方面變得越來越流行,隨機森林演算法的使用正在獲得動力。隨機森林是一種監督學習演算法,用於機器學習領域的回歸和分類任務。它的工作原理是在訓練時建立大量決策樹並輸出類,即類的模式(分類)或單一樹的平均預測(回歸)。

在本文中,我們將討論如何使用線上真實資料集實作隨機森林演算法。我們還將提供詳細的程式碼解釋和每個步驟的描述,以及對模型效能和視覺化的評估。

我們將使用的資料集是“Breast Cancer Wisconsin (Diagnostic) Dataset”,它是公開可用的,可以透過 UCI 機器學習儲存庫存取。該資料集有 569 個實例,具有 30 個屬性和兩個類別—惡性和良性。我們的目標是根據 30 個屬性對這些實例進行分類,並確定它們是良性還是惡性。您可以從https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data下載資料集。

首先,我們將匯入必要的函式庫:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
登入後複製

接下來,我們將載入資料集:

df = pd.read_csv(r"C:UsersUserDownloadsdatabreast_cancer_wisconsin_diagnostic_dataset.csv")
df
登入後複製

輸出:

機器學習中實作隨機森林演算法的指南

機器學習中實作隨機森林演算法的指南

在建立模型之前,我們需要先對資料進行預處理。由於'id' 和'Unnamed: 32' 列對我們的模型沒有用,我們將刪除它:

df = df.drop([ 'id' , 'Unnamed: 32' ], axis=1) 
df
登入後複製

輸出:

機器學習中實作隨機森林演算法的指南

#接下來,我們將把「診斷」列分配給我們的目標變數並將其從我們的特徵中刪除:

target = df['diagnosis']
features = df.drop('diagnosis', axis=1)
登入後複製

我們現在將把我們的資料集分成訓練集和測試集。我們將使用70% 的資料進行訓練,30% 的資料用於測試:

X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.3, random_state=42)
登入後複製

機器學習中實作隨機森林演算法的指南透過我們的資料預處理並分成訓練和測試集,我們現在可以建立我們的隨機森林模型:

rf = RandomForestClassifier(n_estimators=100, random_state=42) 
rf.fit(X_train, y_train)
登入後複製

#在這裡,我們將森林中的決策樹數量設為100,並設定了隨機狀態以確保結果的可重複性。

現在,我們可以評估模型的效能。我們將使用準確度分數、混淆矩陣和分類報告進行評估:

y_pred = rf.predict(X_test)
登入後複製
# 准确度分数
print("Accuracy Score:", accuracy_score(y_test, y_pred))
# Confusion Matrix
conf_matrix = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:n", conf_matrix)
# Classification Report
class_report = classification_report(y_test, y_pred)
print("Classification Report:n", class_report)
登入後複製

輸出:

機器學習中實作隨機森林演算法的指南

##準確度分數告訴我們模型在正確分類實例方面的表現如何。混淆矩陣讓我們更了解我們模型的分類性能。分類報告為我們提供了兩個類別的精確度、召回率、f1 分數和支援值。

#########最後,我們可以視覺化模型中每個特徵的重要性。我們可以透過建立一個顯示特徵重要性值的長條圖來做到這一點:#########
importance = rf.feature_importances_
feat_imp = pd.Series(importance, index=features.columns)
feat_imp = feat_imp.sort_values(ascending=False)
登入後複製
plt.figure(figsize=(12,8))
feat_imp.plot(kind='bar')
plt.ylabel('Feature Importance Score')
plt.title("Feature Importance")
plt.show()
登入後複製
#########輸出:########## ##################此長條圖以降序顯示每個特徵的重要性。我們可以看到前三個重要特徵是「凹點平均值」、「凹點最差」和「區域最差」。 ######

總之,在機器學習中實作隨機森林演算法是分類任務的強大工具。我們可以使用它根據多個特徵對實例進行分類並評估我們模型的性能。在本文中,我們使用了線上真實資料集,並提供了詳細的程式碼解釋和每個步驟的描述,以及對模型效能和視覺化的評估。

以上是機器學習中實作隨機森林演算法的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板