偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一個強大的集成學習算法:隨機森林

發(fā)布于 2025-1-26 14:47
瀏覽
0收藏

一、算法介紹

        隨機森林屬于集成學習(Ensemble Learning)中的一種,它是通過構建多個決策樹,并綜合這些決策樹的預測結果來進行最終的預測。就好比一群經(jīng)驗豐富的專家(各個決策樹)共同商討一件事,然后匯總大家的意見(預測結果)得出最終結論,往往這樣綜合考量后的結果會更加準確可靠。

        隨機森林可以用于解決分類問題,比如判斷一封郵件是垃圾郵件還是正常郵件;也能處理回歸問題,例如預測某地區(qū)的房價走勢等。它具有以下優(yōu)點:

  • 準確性高:通過集成多個決策樹,減少了單個模型的偏差和方差,通常能獲得比單一決策樹更好的預測性能。
  • 魯棒性強:對數(shù)據(jù)中的噪聲和異常值有較好的容忍度,不太容易因為個別“搗亂”的數(shù)據(jù)而導致整體預測結果偏差過大。
  • 可處理高維數(shù)據(jù):在面對具有眾多特征的數(shù)據(jù)時,依然能夠較好地發(fā)揮作用,篩選出重要特征并進行有效預測。

二、算法原理

1. 決策樹基礎

        隨機森林的基本組成單元是決策樹。決策樹是一種基于樹結構進行決策的模型,它通過對數(shù)據(jù)集特征的不斷劃分來構建樹形結構。

例如,我們有一個簡單的數(shù)據(jù)集,特征包括天氣(晴天、多云、下雨)、溫度(高、中、低),要預測是否適合外出活動。決策樹可能會先根據(jù)天氣特征進行劃分,如果是晴天,再看溫度情況等,逐步構建出一個類似樹狀的決策流程,最終每個葉子節(jié)點對應一個預測結果(適合外出或者不適合外出)。

       

一個強大的集成學習算法:隨機森林-AI.x社區(qū)

2. 隨機森林的構建

隨機森林在構建決策樹時有兩個關鍵的隨機化步驟:

一個強大的集成學習算法:隨機森林-AI.x社區(qū)

一個強大的集成學習算法:隨機森林-AI.x社區(qū)

        當構建好眾多的決策樹(假設構建了T棵決策樹)后,對于分類問題,隨機森林的預測結果通常采用投票法,即統(tǒng)計每棵樹預測的類別,選擇出現(xiàn)次數(shù)最多的類別作為最終預測類別;對于回歸問題,則是將每棵樹的預測值進行平均,得到最終的預測值。

三、案例分析——基于隨機森林的機器故障預測

1. 數(shù)據(jù)集介紹

  • 該數(shù)據(jù)集包含了機器運行的相關信息,共有8998條記錄,10個字段。其中主要字段包括:

機器編號:用于唯一標識每臺機器。

統(tǒng)一規(guī)范代碼:可能與機器的類型或規(guī)格相關。

機器質量等級:反映機器的質量層次,可能影響其運行穩(wěn)定性和故障概率。

工廠溫度:機器運行環(huán)境的溫度情況。

機器溫度:機器自身運行時的溫度。

轉速(rpm):機器運行的轉速。

扭矩(Nm):機器工作時產(chǎn)生的扭矩。

使用時長(min):機器已經(jīng)運行的累計時長。

是否發(fā)生故障:目標變量,表示機器是否出現(xiàn)故障,1表示發(fā)生故障,0表示未發(fā)生故障。

具體故障類別:進一步細分故障的類型。

2. 完整代碼

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.metrics import roc_curve, auc

# 定義excel文件路徑
file_path = '/mnt/data.xlsx'

# 加載數(shù)據(jù)
data = pd.read_excel(file_path)

# 定義特征列名列表
feature_cols = ['機器質量等級', '工廠溫度', '機器溫度', '轉速(rpm)', '扭矩(Nm)', '使用時長(min)']

# 選取特征列作為特征變量X
X = data.loc[:, feature_cols]

# 選取目標列作為目標變量y
y = data['是否發(fā)生故障']

# 劃分訓練集和測試集,測試集大小為30%
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創(chuàng)建隨機森林分類器,設置決策樹數(shù)量為100
rf = RandomForestClassifier(n_estimators=100, random_state=42)

# 使用訓練集訓練模型
rf.fit(X_train, y_train)

# 使用訓練好的模型對測試集進行預測
y_pred = rf.predict(X_test)

# 輸出分類報告
print(classification_report(y_test, y_pred))

# 計算混淆矩陣
cm = confusion_matrix(y_test, y_pred)

# 繪制混淆矩陣熱力圖
plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Predicted')
plt.ylabel('True')
plt.title('Confusion Matrix')
plt.show()

# 計算ROC曲線相關數(shù)據(jù)
y_pred_proba = rf.predict_proba(X_test)[:, 1]
fpr, tpr, thresholds = roc_curve(y_test, y_pred_proba)
roc_auc = auc(fpr, tpr)

# 繪制ROC曲線
plt.figure(figsize=(8, 6))
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

3. 結果分析

  • 分類報告:

precision    recall  f1-score   support

          0       0.99      1.00      0.99      2624
          1       0.88      0.58      0.70        76

   accuracy                           0.99      2700
  macro avg       0.93      0.79      0.85      2700
weighted avg       0.98      0.99      0.98      2700

其中,精確率表示預測為正例的樣本中真正為正例的比例;召回率表示實際為正例的樣本中被正確預測為正例的比例;F1 值是精確率和召回率的調(diào)和平均數(shù),綜合反映模型的性能;支持度表示每個類別的樣本數(shù)量。

  • 混淆矩陣熱力圖:

一個強大的集成學習算法:隨機森林-AI.x社區(qū)

混淆矩陣中,對角線元素表示正確分類的樣本數(shù)量,非對角線元素表示錯誤分類的樣本數(shù)量。

  • ROC曲線:一個強大的集成學習算法:隨機森林-AI.x社區(qū)

四、結論

        隨機森林模型在這個機器故障預測任務中表現(xiàn)優(yōu)秀,能夠有效地根據(jù)機器的運行參數(shù)預測是否會發(fā)生故障,可用于實際生產(chǎn)中的機器故障預警和維護決策等場景。

本文轉載自 ??寶寶數(shù)模AI??,作者: BBSM

收藏
回復
舉報
回復
相關推薦