我們如何以程式設計方式從 Scikit-Learn 決策樹中提取決策規則,同時避免常見陷阱?

Mary-Kate Olsen
發布: 2024-10-26 07:27:02
原創
947 人瀏覽過

How Can We Programmatically Extract Decision Rules from Scikit-Learn Decision Trees While Avoiding Common Pitfalls?

從Scikit-Learn 決策樹中提取決策規則

在機器學習中,決策樹通常用於捕獲決策過程決策規則的形式。這些規則可以表示為文字列表,讓您清楚地了解決策樹中的底層邏輯。

以程式方式擷取決策規則

Python 函數 tree_to_code 可以實現從經過訓練的決策樹中擷取決策規則。它將經過訓練的樹和特徵名稱清單作為輸入,並產生一個表示決策規則的有效 Python 函數。

<code class="python">def tree_to_code(tree, feature_names):
    # ...</code>
登入後複製

產生的函數與決策樹具有相同的結構,使用巢狀 if -else 語句代表決策路徑。提供輸入資料後,函數將傳回對應的輸出。

範例輸出

對於嘗試傳回其輸入(0 到10 之間的數字)的決策樹),產生的程式碼可能如下所示:

<code class="python">def tree(f0):
  if f0 <= 6.0:
    if f0 <= 1.5:
      return [[ 0.]]
    else:  # if f0 > 1.5
      if f0 <= 4.5:
        if f0 <= 3.5:
          return [[ 3.]]
        else:  # if f0 > 3.5
          return [[ 4.]]
      else:  # if f0 > 4.5
        return [[ 5.]]
  else:  # if f0 > 6.0
    if f0 <= 8.5:
      if f0 <= 7.5:
        return [[ 7.]]
      else:  # if f0 > 7.5
        return [[ 8.]]
    else:  # if f0 > 8.5
      return [[ 9.]]</code>
登入後複製

其他方法的限制

從決策樹中提取決策規則的一些常見陷阱包括:

  • 錯誤地使用tree_. threshold == -2來識別葉子節點(並不總是可靠)
  • 在遞歸函數中包含不必要的多個if-else語句
  • 由於葉子而崩潰特徵值為- 2
的節點

以上是我們如何以程式設計方式從 Scikit-Learn 決策樹中提取決策規則,同時避免常見陷阱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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