matlab实现id3,MATLAB简单实现ID3
再看《MATLAB數據分析與挖掘實戰》,簡單總結下今天看到的經典的決策樹算法——ID3.
ID3:在決策樹的各級節點上,使用信息增益的方法作為屬性的選擇標準,來幫助確定生成每個節點時所應采取的合適屬性。
關于信息增益,知乎上這個回答也講的很不錯。信息增益=熵 - 條件熵,信息增益越大,說明該條件對事件確定性的影響越大。所以,在決策樹中,我們將信息增益值作為測試屬性。把測試屬性取值相同的樣本劃為同一個子樣本集。
基本流程:
·對當前樣本,計算所有屬性的信息增益,并將信息增益作為測試屬性;
·若子樣本集的類別屬性只含有單個屬性,則分支為葉子節點,判斷其屬性值并貼上相應的,然后返回調用處;否則對子樣本集遞歸調用算法。
原理看起來有點復雜,其實用MATLAB實現起來及其簡單:
%% 使用ID3決策樹算法預測銷量高低
clear;
% 參數初始化
inputfile = ‘F:\Techonolgoy\MATLAB\file\MTALAB數據分析與挖掘實戰\Datasets\chapter5\chapter5\示例程序\data\sales_data.xls‘; % 銷量及其他屬性數據
%% 數據預處理
disp(‘正在進行數據預處理...‘);
[matrix,attributes_label,attributes] = id3_preprocess(inputfile);
%% 構造ID3決策樹,其中id3()為自定義函數
disp(‘數據預處理完成,正在進行構造樹...‘);
tree = id3(matrix,attributes_label,attributes);
%% 打印并畫決策樹
[nodeids,nodevalues] = print_tree(tree);
tree_plot(nodeids,nodevalues);
disp(‘ID3算法構建決策樹完成!‘);
ID3缺點:
·偏向選擇取值最多的即所謂的高度分支屬性,不一定最優。
·只能處理離散屬性。
原文:http://www.cnblogs.com/buzhizhitong/p/5880184.html
總結
以上是生活随笔為你收集整理的matlab实现id3,MATLAB简单实现ID3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php template strring
- 下一篇: android 自定义表情包,andro