91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .py
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-12
  • 語言: Python
  • 標簽: 決策樹??

資源簡介

決策樹(Decision Tree)是在已知各種情況發生概率的基礎上,通過構成決策樹來求取凈現值的期望值大于等于零的概率,評價項目風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。由于這種決策分支畫成圖形很像一棵樹的枝干,故稱決策樹。在機器學習中,決策樹是一個預測模型,他代表的是對象屬性與對象值之間的一種映射關系。Entropy = 系統的凌亂程度,使用算法ID3, C4.5和C5.0生成樹算法使用熵。這一度量是基于信息學理論中熵的概念。

資源截圖

代碼片段和文件信息

import?numpy?as?np	
import?math
from?sklearn.datasets?import?load_iris

#找出list中匹配字符的最大index
def?maxIndex(numnumList):
????max_index?=?0
????for?i?in?range(len(numList)):
????????if(num==numList[i]):
????????????max_index?=?i
????return?max_index
#找出片段序列中的最大值和最小值
def?maxAndMinValue(numberListindexList):
????max_value?=?numberList[indexList[0]]
????min_value?=?numberList[indexList[0]]
????for?i?in?indexList:
????????if(numberList[i]>max_value):
????????????max_value?=?numberList[i]
????????if(numberList[i]????????????min_value?=?numberList[i]
????return?max_valuemin_value

#當對數輸入為0是,輸出為0
def?log(mn):
????if(m==0):
????????return?0
????else:
????????return?math.log(mn)
#熵的計算m為某種結果出現的次數,n為所有結果出現的次數
def?entropy(nm_0m_1m_2):
#結果出現概率?p?=?m/n
????p_0?=?float(m_0/n)?
????p_1?=?float(m_1/n)
????p_2?=?float(m_2/n)
????e?=?-?(p_0?*?log(p_02)?+?p_1?*?log(p_12)?+?p_2?*?log(p_22))
????return?e

#計算出某一類中最小的熵,從而得到最大的information?gain
def?computing_min_entropy(label_nameinclude_indexstep_width):
????order?=?labels.index(label_name)
????classed_attributes?=?attributes[:order]
????min_entropy?=?1000?#存儲最小的熵
????max_valuemin_value?=?maxAndMinValue(classed_attributesinclude_index)
????ar_1?=?np.arange(min_value+0.01max_value-0.01step_width)
????#存儲分成兩類的索引值
????branch_1_index?=?[];
????branch_2_index?=?[];
????#劃分的臨界值
????threshold?=?0
????#分成兩類的索引值
????branch1?=?[]
????branch2?=?[]
????matrix?=?[[0000][0000]]?
????for?i?in?ar_1:
????????#存儲分類后各項指標
????????computing_matrix?=?[[0000][0000]]?
????????
????????#存儲分成兩類的索引值
????????branch_1_index?=?[];
????????branch_2_index?=?[];
????????for?j?in?include_index:
????????????if(classed_attributes[j]<=i):
????????????????branch_1_index.append(j)
????????????????computing_matrix[0][0]?+=1
????????????????if(target[j]==0):
???????????????? computing_matrix[0][1]?+=1
????????????????elif(target[j]==1):
???????????????? computing_matrix[0][2]?+=1
????????????????else:
???????????????? computing_matrix[0][3]?+=1
????????????else:
????????????????branch_2_index.append(j)
????????????????computing_matrix[1][0]?+=1
????????????????if(target[j]==0):
???????????????? computing_matrix[1][1]?+=1
????????????????elif(target[j]==1):
???????????????? computing_matrix[1][2]?+=1
????????????????else:
???????????????? computing_matrix[1][3]?+=1
????????#屬于第一類與第二類的個數
????????class1_num?=?computing_matrix[0][0]
????????class2_num?=?computing_matrix[1][0]

????????e1?=?class1_num?*?entropy(computing_matrix[

評論

共有 條評論