Day17 决策树实作

https://github.com/PacktPublishing/Machine-Learning-Algorithms

使用sci-kit learn

一样先导入套件,但是这次只用旧工具算数学(绰号一样),但用不同工具来画画。

import numpy as np

用Jupyter Notebook的话,要先载入graphviz,它是一种树工具,再用内建函式export_graphviz()。

pip install graphviz
from sklearn.tree import export_graphviz

再来,用seed()随机产生整数的乱数後,设定样本数500,建立有3个特徵及类别的样本集。

from sklearn.datasets import make_classification

np.random.seed(1000)
nb_samples = 500
X, Y = make_classification(n_samples=nb_samples, n_features=3, n_informative=3, n_redundant=0, n_classes=3, n_clusters_per_class=1)

接着用预设的吉尼(Gini)不纯度来分类,Gini是用来判断分类的乾不乾净(这批纯不纯/images/emoticon/emoticon38.gif),数值越小越纯[价格越高(误)]。
经历建立决策树分类器後,交叉验证准确率,大概97%。

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score
dt = DecisionTreeClassifier()
dt_scores = cross_val_score(dt, X, Y, scoring='accuracy', cv=10)
print('Decision tree score: %.3f' % dt_scores.mean()) # Decision tree score: 0.972

对MNIST数字集使用网格搜寻以及最常见的参数,得到大概82%准确率。
https://ithelp.ithome.com.tw/upload/images/20210922/20137546BDngRtyTnp.png

from sklearn.model_selection import GridSearchCV
param_grid = [{
   'criterion': ['gini', 'entropy'],
   'max_features': ['auto', 'log2', None],
   'min_samples_split': [2, 10, 25, 100, 200],
   'max_depth': [5, 10, 15, None]
}]
gs = GridSearchCV(estimator=DecisionTreeClassifier(),    param_grid=param_grid,scoring='accuracy', cv=10,     n_jobs=multiprocessing.cpu_count())
gs.fit(digits.data, digits.target)
print(gs.best_estimator_) # DecisionTreeClassifier()
print('Decision tree score: %.3f' % gs.best_score_) # Decision tree score: 0.822

<<:  Day08 建造APP(2)

>>:  D-7. Rails API认证功能 && Find All Numbers Disappeared in an Array

DAY26-在firebase上架你的react网站吧

前言: 今天是第26天啦,阿森在整个开发的部分也差不多完成了,准备进入最後上架测试阶段! 在上架的...

JavaScript Day04 - 变数(3)

变数(variable)-Boolean 主要为 true、false,内容为判断式也可以,如 2&...

Day-20 南蛮黑船的再逆袭、引领进入网路世代的 XBOX 360

在上个世代的大战中、虽然 XBOX 的表现基本不算太差、最终来到了 2,400 万部得到第二名、稍胜...

012-忘记打文章

连续发文快两个礼拜了,今天很悠闲了看了场电影、煮饭、洗衣服、健身还有整理家里之後,回过神来,已经快1...

[ Vue ] 使用 Vitawind 1.2 来 建置 Vite + Tailwind JIT 专案

建立 Vite 专案 在你要放置专案的地方执行这个指令来建立 vue 模板的 vite 专案 # n...