当前位置: 首页 > news >正文

沈阳市网站建设哪里的公司比较好爱链接购买链接

沈阳市网站建设哪里的公司比较好,爱链接购买链接,横栏建设网站,动易网站制作教程目录 决策树优化与可视化 1 决策树分类 2 决策树可视化 3 显示树的特征重要性 特征重要性可视化 决策树回归 1 决策树回归 决策树优化与可视化 1 决策树分类 from sklearn.datasets import load_breast_cancer from sklearn.tree import DecisionTreeClassifier from sk…

目录

决策树优化与可视化

1 决策树分类

2 决策树可视化

3 显示树的特征重要性

 特征重要性可视化

决策树回归

1 决策树回归


决策树优化与可视化

1 决策树分类

from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import datasets
import matplotlib.pyplot as plt
import numpy as npcancer = datasets.load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, stratify=cancer.target, random_state = 42)
tree = DecisionTreeClassifier(random_state=0)tree.fit(X_train, y_train)
print("Accuracy on traning set:{:.3f}".format(tree.score(X_train, y_train)))
print("Accuracy on test set:{:.3f}".format(tree.score(X_test, y_test)))
print("tree max depth:{}".format(tree. tree_.max_depth))
# 报错:AttributeError: 'function' object has no attribute 'data' function对象没有data属性
# 解决之后:
#Accuracy on traning set:1.000
#Accuracy on test set:0.937
#tree max depth:7

可以得到,训练集的精度是100%,这是因为叶子结点都是纯的,树的深度为7,足以完美地记住训练数据的所有标签,测试集泛化精度只有93.7%,明显过拟合。

不限制决策树的深度,它的深度和复杂度都可以变得特别大。故未剪枝的树容易过拟合,对新数据的泛化性能不佳。

现在将预剪枝应用在决策树上,可以阻止树的完全生长。

设置max_depth=4,这表明构造的决策树只有4层,限制树的深度可以减少过拟合,这会降低训练集的精度,但可以提高测试集的精度。

from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import datasets
import matplotlib.pyplot as plt
import numpy as npcancer = datasets.load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, stratify=cancer.target, random_state = 42)
tree = DecisionTreeClassifier(max_depth=4, random_state=0)
tree.fit(X_train, y_train)
print("Accuracy on traning set:{:.3f}".format(tree.score(X_train, y_train)))
print("Accuracy on test set:{:.3f}".format(tree.score(X_test, y_test)))
Accuracy on traning set:0.988
Accuracy on test set:0.951

训练精度为98.8%,测试精度为95.1%,树的最大深度只有4层,降低了训练精度,但提高了泛化(测试)精度,改善了过拟合的状况。

2 决策树可视化

 

 使用 pip3 install graphviz 后, import graphviz 仍然报错:

ModuleNotFoundError: No module named 'graphviz'

使用命令:conda install python-graphviz;


 

from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import datasets
import matplotlib.pyplot as plt
import numpy as np
import graphviz
from sklearn.tree import export_graphviz
cancer = datasets.load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, stratify=cancer.target, random_state = 42)
tree = DecisionTreeClassifier(max_depth=4, random_state=0)
tree.fit(X_train, y_train)
export_graphviz(tree,out_file="tree.dot",class_names=["malignat","benign"],feature_names=cancer.feature_names,impurity=False,filled=True)with open("tree.dot") as f:dot_graph = f.read() 
graphviz.Source(dot_graph)# out:ModuleNotFoundError: No module named 'graphviz'

尝试了很多种方法并没有解决问题‼️

http://t.csdn.cn/wAVEK ⬅️可用此方法再次验证

3 显示树的特征重要性

其中最常用的是特征重要性(Feature Importance),每个特征对树决策的重要性进行排序, 其中0表示“根本没用到”,1表示“完美预测目标值”,特征重要性的求和始终为1。

from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import datasets
import matplotlib.pyplot as plt
import numpy as npcancer = datasets.load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, stratify=cancer.target, random_state = 42)
tree = DecisionTreeClassifier(max_depth=4, random_state=0)
tree.fit(X_train, y_train)
print("Feature imprtance:\n{}".format(tree.feature_importances_))

Feature imprtance:
[0.         0.         0.         0.         0.         0.0.         0.         0.         0.         0.01019737 0.048398250.         0.         0.0024156  0.         0.         0.0.         0.         0.72682851 0.0458159  0.         0.0.0141577  0.         0.018188   0.1221132  0.01188548 0.        ]

 特征重要性可视化

from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import datasets
import matplotlib.pyplot as plt
import numpy as npcancer = datasets.load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, stratify=cancer.target, random_state = 42)
tree = DecisionTreeClassifier(max_depth=4, random_state=0)
tree.fit(X_train, y_train)
print("Feature imprtance:\n{}".format(tree.feature_importances_))def plot_feature_importances_cancer(model):n_features = cancer.data.shape[1]plt.barh(range(n_features),model.feature_importances_,align='center')plt.yticks(np.arange(n_features),cancer.feature_names)plt.xlabel("Feature importance")plt.ylabel("Feature")plot_feature_importances_cancer(tree)

 


决策树回归

1 决策树回归

#决策树回归
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
boston = datasets.load_boston()X = boston.data
y = boston.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y, random_state=666)# DecisionTreeRegressor决策树的回归器
from sklearn.tree import DecisionTreeRegressor
dt_reg = DecisionTreeRegressor( max_depth= 11 )
dt_reg.fit(X_train, y_train)
print(dt_reg.score(X_test,y_test))
print(dt_reg.score(X_train,y_train))
# 0.6005800948958887
# 1.0# 此时决策树在训练数据集上预测准确率是百分百的,但是在测试数据集上只有60%的准确率
# 很显然出现了过拟合,可通过设置树深来改善过拟合
# 0.6908496704356424
# 0.9918292293652428

此时决策树在训练数据集上预测准确率是百分百的,但是在测试数据集上只有60%的准确率,很显然出现了过拟合,可通过设置树深来改善过拟合。

http://www.hengruixuexiao.com/news/49632.html

相关文章:

  • 做海外网站 服务器放哪谁有恶意点击软件
  • 织梦学校网站源码网站推广策划方案
  • 软件公司网站建设百度升级最新版本下载安装
  • 做代理需要自己的网站吗郑州网站制作
  • 个人网站建设与维护百度竞价客服
  • 企业网站建设专家佛山百度seo代理
  • 普通网站可以做商城网络营销环境分析主要包括
  • 做网站郴州百度手机网页
  • 亚马逊云服务器最专业的seo公司
  • 建站公司接单网站域名在哪里查询
  • 创意品牌型网站徐州百度推广公司
  • php网站建设带数据库模板如何建立网站平台
  • 沈阳男科医院排名最好的是哪家百度seo网站优化服务
  • 做购物网站最开始没人怎么办优化教程网站推广排名
  • 网站怎么做来流量网盘资源大全
  • 工程师招聘网站高端网站建设的公司
  • 网站开发都有哪些语言找客户资源的软件
  • 手套网站模板google安卓手机下载
  • 怎么制作一个属于自己的网站企业所得税优惠政策
  • 迎访问中国建设银行网站_广丰网站seo
  • 如何做个购物网站百度在西安的公司叫什么
  • wordpress汉化包安装台州关键词优化平台
  • 网络营销培训班靠谱吗seo工程师是做什么的
  • 广州网站推广哪家好seo管理工具
  • 一起合伙做项目的网站贴吧aso优化贴吧
  • 建一个网站的费用seo技术博客
  • 公司关键词seo贵阳百度seo点击软件
  • 政府网站建设普查磁力王
  • 网站资讯建设网站分析工具
  • 北京建站的广告投放平台排名