国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Decision Tree

2019-11-11 06:56:23
字體:
供稿:網(wǎng)友

Decision Tree Classifier

Decision Tree Classifier

from sklearn.tree import DecisionTreeClassifier as DTCy = df.targetX = df.featuresdtc = DTC(criterion='entropy', mim_samples_slit=20, random_state=90)dtc.fit(X, y)

official example

from sklearn.datasets import load_irisfrom sklearn.model_selection import cross_val_scorefrom sklearn.tree import DecisionTreeClassifierclf = DecisionTreeClassifier(random_state=0)iris = load_iris()cross_val_score(clf, iris.data, iris.target, cv=10)

Visualizing the tree

article

in advance you should install Graphviz

from sklearn.tree import export_graphvizdef visualize_tree(tree, feature_names): """Create tree png using graphviz. Args ---- tree -- scikit-learn DecsisionTree. feature_names -- list of feature names. usage --- features = X.columns visualize_tree(dtc, features) """ with open("dt.dot", 'w') as f: export_graphviz(tree, out_file=f, feature_names=feature_names) #generate png command = ["dot", "-Tpng", "dt.dot", "-o", "dt.png"] #or pdf #command = ["dot", "-Tpdf", "dt.dot", "-o", "dt.pdf"] try: subPRocess.check_call(command) except: exit("Could not run dot, ie graphviz, to " "produce visualization") #open image from PIL import Image im = Image.open("od.png") im.show()

Decision Tree Regression

example

DecisionTreeRegressor

Decision Tree Regression with AdaBoost

from sklearn.tree import DecisionTreeRegressorregr = DecisionTreeRegressor(max_depth=2)regr.fit(X, y)y_predict = regr_1.predict(X_test)

ID3 (Iterative Dichotomiser)

屬性集合A={a1,a2,…,am} 如{身高,體重,是否近視}

樣本集合D={(x1;y1),(x2;y2),…,(xm;ym)} 如{(身高175,體重63,近視1;不符合應(yīng)聘要求0),…}

根據(jù)某屬性a的劃分D1,D2,…

informathin entropy

Ent(D)=?∑k=1|m|pklog2pk

pk是每類樣本占當(dāng)前樣本集合D中的比例

Ent越小純度越高

決策樹根節(jié)點(diǎn)的D包含所有樣本,如果y只有0,1兩個(gè)取值,正3個(gè)負(fù)2個(gè),則 Ent(D)=?(25log225+35log235)

information gain

根據(jù)某屬性a劃分得到Dv(v=1,2,…,V) Gain(D,a)=Ent(D)?∑v=1V|Dv||D|Ent(Dv)

Gain越大劃分得到的純度提升越高

example

假設(shè)有A = {行為習(xí)慣,飲食偏好, 體育運(yùn)動(dòng)}三個(gè)屬性,判斷是否會(huì)得某種病。

總共6個(gè)得病9個(gè)不得

行為習(xí)慣 得病 不得病 得病占該習(xí)慣總數(shù)比例 該行為習(xí)慣占總?cè)藬?shù)的比例
抽煙 1 5 1/6 6/15
喝酒 2 3 2/5 5/15
吸毒 3 1 3/4 4/15

Ent(D)=?(615log265+95log295) 根據(jù)行為習(xí)慣劃分出抽煙,喝酒,吸毒三個(gè)子集D1,D2,D3 Ent(D1)=?(16log216+56log256)Ent(D2),Ent(D3)同理

Gain(D,行為習(xí)慣)=Ent(D)?(615Ent(D1)+515Ent(D2)+415Ent(D3))

之后再算Gain(D,飲食偏好)

假設(shè)Gain(D,行為習(xí)慣)>Gain(D,飲食偏好)>Gain(D,體育運(yùn)動(dòng))

那么分別取D1,D2,D3為新的D,剩下的屬性為A={飲食偏好,體育運(yùn)動(dòng)} ,進(jìn)行迭代算Gain(D,飲食偏好)Gain(D,體育運(yùn)動(dòng))

C4.5

基于增益率(gain ratio)減少ID3偏好可取數(shù)目多帶來的影響。

剪枝

預(yù)剪枝

劃分訓(xùn)練集和測試集。

如果使用某一劃分,算出驗(yàn)證集精度。

如果停止劃分采用樣本中占多數(shù)的結(jié)果作為該分支結(jié)果,計(jì)算精度。

如果停止劃分精度反而更高則停止劃分。

后剪枝

從完整的決策樹的倒數(shù)第二個(gè)節(jié)點(diǎn)開始。

如果剪掉倒數(shù)第一個(gè)節(jié)點(diǎn)精度提高則剪掉。

依次往上類推

連續(xù)數(shù)據(jù)

采用二分法劃分,既劃分成≤t>t, t取遍兩個(gè)相鄰離散數(shù)據(jù)的平均值然后找出信息熵增Gain最小的。

缺失值處理

先算出對(duì)該屬性而言無缺失值的Entropy, 然后計(jì)算出對(duì)該屬性而言無缺失值的Gain。

然后乘上無缺失值樣本所占比例ρ最終的Gain。

多變量決策樹(multivariate decision tree)

使用斜線來劃分多變量。

既用多變量的線性組合W?Attribtes≤t? 來劃分。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 城市| 嘉定区| 扬中市| 颍上县| 芮城县| 松滋市| 永平县| 武功县| 乳山市| 丹巴县| 永丰县| 崇州市| 大邑县| 祁阳县| 涡阳县| 思南县| 闽清县| 普洱| 宿迁市| 庄浪县| 乌鲁木齐市| 珲春市| 安平县| 临泉县| 漾濞| 友谊县| 威远县| 平安县| 紫金县| 夹江县| 咸丰县| 波密县| 洪洞县| 梁山县| 三都| 集安市| 隆德县| 阿克陶县| 阳高县| 泸定县| 延边|