-
大小: 1.17MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-08-28
- 語(yǔ)言: Python
- 標(biāo)簽: 決策樹(shù)??ID3??Car-Evaluati??人工智能??car_database??
資源簡(jiǎn)介
用python編寫的決策樹(shù)ID3算法,運(yùn)用了Car-Evaluation的例子。BUG較少,綜合了網(wǎng)上的優(yōu)秀代碼,并進(jìn)一步形成自己的代碼。代碼基本有注釋,風(fēng)格良好,能夠很快看懂。內(nèi)含有比較規(guī)范的報(bào)告文檔,包含所有流程圖,說(shuō)明圖,以及文檔風(fēng)格絕對(duì)不錯(cuò),無(wú)需更改,建議下載!
該算法所測(cè)試的數(shù)據(jù)集如下(已經(jīng)打包在內(nèi),并已經(jīng)生成xls格式,方便直接使用):
已知:UCI標(biāo)準(zhǔn)數(shù)據(jù)集Car-Evaluation,定義了汽車性價(jià)比的4 個(gè)類別;
求:用ID3算法建立Car-Evaluation的屬性描述決策樹(shù)
Car-Evaluation訓(xùn)練數(shù)據(jù)集文件:
1. car_databases.pdf
2. car_evalution-databases.pdf

代碼片段和文件信息
import?pandas?as?pd
import?numpy?as?np
import?time
import?treePlotter?as?ctp
#import?matplotlib.pyplot?as?plt
#print不省略輸出
#np.set_printoptions(threshold=np.inf)
def?getData():
????f?=?pd.read_csv(‘D:\docunments\code\DM\ML\ID3\data?set\car_evalution-databases.csv‘encoding?=?“utf-8“)
????#?獲取屬性值
????feature?=?np.array(f.keys())
????feature?=?np.array(feature[1:feature.size])
????#?數(shù)據(jù)轉(zhuǎn)換成數(shù)組
????S?=?np.array(f)
????S?=?np.array(S[:?1:S.shape[1]])
????return?Sfeature
#統(tǒng)計(jì)某一列的特征各個(gè)取值概率
def?probability(x):
????x_values?=?np.unique(np.array(x))??#統(tǒng)計(jì)某列特征取值類型
????values_count?=?np.zeros(x_values.shape[0]).reshape(1x_values.shape[0])
????for?i?in?range(0?x_values.shape[0]):
????????q?=?np.matrix(x[np.where(x[:0]?==?x_values[i])[0]])
????????values_count[:i]?=?q.shape[0]
????p?=?values_count/values_count.sum()
????return?p
#計(jì)算Entropy
#S為矩陣類型
#返回entropy
def?Entropy(S):
????p?=?probability(S[:S.shape[1]-1])
????log_p?=?np.log(p)
????entropy?=?-np.dot(pnp.transpose(log_p))[0][0]
????return?entropy
#計(jì)算EntropyA
#S為數(shù)組類型
#返回最小的信息熵的特征的索引值
#返回最小的信息熵值
def?getMinEntropyA(S):
????entropy?=?np.zeros(S.shape[1]-1)
????for?i?in?range(0?S.shape[1]-1):????????#當(dāng)前所有非目標(biāo)特征
????????values?=?np.unique(np.array(S[:i]))
????????values_entropy?=?np.zeros(values.shape[0]).reshape(1values.shape[0])
????????for?j?in?range(0values.shape[0]):
????????????q?=?np.matrix(S[np.where(S[:i]?==?values[j])[0]])??#抽取該特征取某值的樣本數(shù)據(jù)
????????????values_entropy[:j]?=?Entropy(q)
????????proportion?=?probability(np.matrix(S[:?i]).transpose())
????????entropy[i]?=?np.dot(proportion?values_entropy.transpose())[0][0]
????minEntropyA?=?entropy.min()
????position_minEntropA?=?entropy.transpose().argmin()
????return?position_minEntropA?minEntropyA
#計(jì)算Gain
#S為數(shù)組類型
#返回最大信息增益的特征的索引值
def?getMaxGain(S):
????entropyS?=?Entropy(np.matrix(S))
????position_minEntropyA?entropyA?=?getMinEntropyA(S)
????if(entropyS?-?entropyA?>?0):
????????return?position_minEntropyA
#ID3算法
#返回ID3決策樹(shù)
def?ID3(Sfeatures):
????if(Entropy(np.matrix(S))?==?0):
????????return?S[0][S.shape[1]?-?1]
????????#統(tǒng)計(jì)目標(biāo)特征的當(dāng)前取值作為葉節(jié)點(diǎn)的值
????elif?features.size?==?1:
????????type_values?=?np.unique(S[:?S.shape[1]-1])
????????max?=?0
????????max_value?=?S[0][S.shape[1]?-?1]
????????for?value?in?type_values:
????????????S_temp?=?np.array(S[np.where(S[:?S.shape[1]-1]?==?value)[0]])
????????????if?max?????????????????max?=?S_temp.shape[0]
????????????????max_value?=?value
????????return?max_value
????else:
????????best_feature_index?=?getMaxGain(S)
????????best_feature?=?features[best_feature_index]
????????best_feature_values?=?np.unique(S[:?best_feature_index])
????????#?劃分S,feature
????????features?=?del_arrary(features?best_feature_index)
????????Tree_ID3?=?{best_feature:{}}
????????for?value?in?best_feature_values:
????????????S_temp?=?np.array(S[np.where(S[:?best_feature_index]?==?value)[0]])
????????????#去除best_featur
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????????0??2018-06-12?22:54??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?
?????文件????????6148??2018-06-12?22:54??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?.DS_Store
?????目錄???????????0??2018-06-12?22:59??__MACOSX\
?????文件???????????0??2018-06-12?22:59??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?
?????文件?????????182??2018-06-12?22:54??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?._.DS_Store
?????文件???????38332??2017-10-24?23:51??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?car_databa
?????文件?????????182??2017-10-24?23:51??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?._car_databa
?????文件??????120807??2017-11-02?15:52??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?car_evalution-databa
?????文件?????????182??2017-11-02?15:52??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?._car_evalution-databa
?????文件???????57339??2017-10-24?23:51??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?car_evalution-databa
?????文件?????????182??2017-10-24?23:51??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?._car_evalution-databa
?????文件??????150881??2017-11-02?15:49??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?car_evalution-databa
?????文件?????????182??2017-11-02?15:49??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?._car_evalution-databa
?????文件??????116224??2017-10-25?11:42??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ppt
?????文件?????????182??2017-10-25?11:42??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?._ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ppt
?????目錄???????????0??2017-11-02?14:50??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\
?????文件????????6148??2017-11-02?01:27??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\.DS_Store
?????目錄???????????0??2018-06-12?22:59??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\
?????文件?????????182??2017-11-02?01:27??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\._.DS_Store
?????目錄???????????0??2017-11-02?14:50??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\
?????文件????????6148??2017-11-02?01:27??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\.DS_Store
?????目錄???????????0??2018-06-12?22:59??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\
?????文件?????????182??2017-11-02?01:27??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\._.DS_Store
?????目錄???????????0??2017-11-02?14:50??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\
?????目錄???????????0??2017-11-03?15:09??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\ID3\
?????目錄???????????0??2017-11-02?14:50??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\ID3\.idea\
?????文件?????????459??2017-10-21?02:14??ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\ID3\.idea\ID3.iml
?????目錄???????????0??2018-06-12?22:59??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\
?????目錄???????????0??2018-06-12?22:59??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\ID3\
?????目錄???????????0??2018-06-12?22:59??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\ID3\.idea\
?????文件?????????182??2017-10-21?02:14??__MACOSX\ID3鍐崇瓥鏍?wèi)绠楁硶瀹為?ML-master\ID3\code\ID3\.idea\._ID3.iml
............此處省略59個(gè)文件信息
- 上一篇:python人臉識(shí)別
- 下一篇:基于arcgis的Python工具箱
評(píng)論
共有 條評(píng)論