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

南京平台网站建设企业关键词优化最新报价

南京平台网站建设,企业关键词优化最新报价,wordpress 多作者,怎么建立一个博客网站决策树是属于有监督机器学习的一种决策树算法实操: from sklearn.tree import DecisionTreeClassifier # 决策树算法 model DecisionTreeClassifier(criterionentropy,max_depthd) model.fit(X_train,y_train)1、决策树概述 决策树是属于有监督机器学习的一种,起源…

  • 决策树是属于有监督机器学习的一种
  • 决策树算法实操:
from sklearn.tree import DecisionTreeClassifier
# 决策树算法
model = DecisionTreeClassifier(criterion='entropy',max_depth=d)
model.fit(X_train,y_train)


1、决策树概述

决策树是属于有监督机器学习的一种,起源非常早,符合直觉并且非常直观,模仿人类做决策的过程,早期人工智能模型中有很多应用,现在更多的是使用基于决策树的一些集成学习的算法。这一章我们把决策树算法理解透彻了,非常有利于后面去学习集成学习

1.1、示例一

上表根据历史数据,记录已有的用户是否可以偿还债务,以及相关的信息。通过该数据,构建的决策树如下:

 1.2、决策树算法特点

  • 可以处理 非线性的问题

  • 可解释性强,没有方程系数

  • 模型简单,模型预测效率高 if else

2、DecisionTreeClassifier使用

2.1、算例介绍

账号是否真实跟属性:日志密度、好友密度、是否使用真实头像有关系~

2.2、构建决策树并可视化

数据创建

import numpy as np
import pandas as pd
y = np.array(list('NYYYYYNYYN'))
print(y)
X = pd.DataFrame({'日志密度':list('sslmlmmlms'),'好友密度':list('slmmmlsmss'),'真实头像':list('NYYYYNYYYY'),'真实用户':y})

数据调整

X['日志密度'] = X['日志密度'].map({'s':0,'m':1,'l':2})
X['好友密度'] = X['好友密度'].map({'s':0,'m':1,'l':2})
X['真实头像'] = X['真实头像'].map({'N':0,'Y':1})
X['真实用户'] = X['真实用户'].map({'N':0,'Y':1})

 模型训练可视化

import matplotlib.pyplot as plt
from sklearn import tree
# 使用信息熵,作为分裂标准
model = DecisionTreeClassifier(criterion='entropy')
model.fit(X,y)
plt.rcParams['font.family'] = 'STKaiti'
plt.figure(figsize=(12,16))
fn = X.columns
_ = tree.plot_tree(model,filled = True,feature_names=fn)
plt.savefig('./iris.jpg')

2.3、信息熵

  • 构建好一颗树,数据变的有顺序了(构建前,一堆数据,杂乱无章;构建一颗,整整齐齐,顺序),用什么度量衡表示,数据是否有顺序:信息熵 。

  • 物理学,热力学第二定律(熵),描述的是封闭系统的混乱程度 。

2.4、信息增益

信息增益是知道了某个条件后,事件的不确定性下降的程度。写作 g(X,Y)。它的计算方式为熵减去条件熵,如下:

​​\bg_white \small g(X,y) \rm = H(Y) - H(Y|X)

表示的是,知道了某个条件后,原来事件不确定性降低的幅度。

2.5、手动计算实现决策树分类

s = X['真实用户']
p = s.value_counts()/s.size
(p * np.log2(1/p)).sum()   # 0.8812908992306926
x = X['日志密度'].unique()
x.sort()
# 如何划分呢,分成两部分
for i in range(len(x) - 1):split = x[i:i+2].mean()cond = X['日志密度'] <= split# 概率分布p = cond.value_counts()/cond.size# 按照条件划分,两边的概率分布情况indexs =p.indexentropy = 0for index in indexs:user = X[cond == index]['真实用户']p_user = user.value_counts()/user.sizeentropy += (p_user * np.log2(1/p_user)).sum() * p[index]print(split,entropy)
columns = ['日志密度','好友密度','真实头像']
lower_entropy = 1
condition = {}
for col in columns:x = X[col].unique()x.sort()print(x)# 如何划分呢,分成两部分for i in range(len(x) - 1):split = x[i:i+2].mean()cond = X[col] <= split# 概率分布p = cond.value_counts()/cond.size# 按照条件划分,两边的概率分布情况indexs =p.indexentropy = 0for index in indexs:user = X[cond == index]['真实用户']p_user = user.value_counts()/user.sizeentropy += (p_user * np.log2(1/p_user)).sum() * p[index]print(col,split,entropy)if entropy < lower_entropy:condition.clear()lower_entropy = entropycondition[col] = split
print('最佳列分条件是:',condition)


3、决策树分裂指标

常用的分裂条件时:

  • 信息增益

  • Gini系数

  • 信息增益率

  • MSE(回归问题)

3.1、信息熵(ID3)

在信息论里熵叫作信息量,即熵是对不确定性的度量。从控制论的角度来看,应叫不确定性。信息论的创始人香农在其著作《通信的数学理论》中提出了建立在概率统计模型上的信息度量。

对应公式:

H(x) = -\sum\limits_{i = 1}^n p(x)log_2p(x)

3.2、Gini系数(CART)

基尼系数是指国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标。

基尼系数最大为“1”,最小等于“0”。基尼系数越接近 0 表明收入分配越是趋向平等。国际惯例把 0.2 以下视为收入绝对平均,0.2-0.3 视为收入比较平均;0.3-0.4 视为收入相对合理;0.4-0.5 视为收入差距较大,当基尼系数达到 0.5 以上时,则表示收入悬殊。

3.3、MSE

用于回归树,后面章节具体介绍

 4、鸢尾花分类代码实战

4.1、决策树分类鸢尾花数据集

import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import tree
import matplotlib.pyplot as pltX,y = datasets.load_iris(return_X_y=True)# 随机拆分
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 256)# max_depth调整树深度:剪枝操作
# max_depth默认,深度最大,延伸到将数据完全划分开为止。
model = DecisionTreeClassifier(max_depth=None,criterion='entropy')
model.fit(X_train,y_train)
y_ = model.predict(X_test)
print('真实类别是:',y_test)
print('算法预测是:',y_)
print('准确率是:',model.score(X_test,y_test))
# 决策树提供了predict_proba这个方法,发现这个方法,返回值要么是0,要么是1
model.predict_proba(X_test)

 4.2、决策树可视化

import graphviz
from sklearn import tree
from sklearn import datasets
# 导出数据
iris = datasets.load_iris(return_X_y=False)
dot_data = tree.export_graphviz(model,feature_names=fn,class_names=iris['target_names'],# 类别名filled=True, # 填充颜色rounded=True,)
graph = graphviz.Source(dot_data)
graph.render('iris')

4.3、选择合适的超参数并可视化  

import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import tree
import matplotlib.pyplot as pltX,y = datasets.load_iris(return_X_y=True)# 随机拆分
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 256)
depth = np.arange(1,16)
err = []
for d in depth:model = DecisionTreeClassifier(criterion='entropy',max_depth=d)model.fit(X_train,y_train)score = model.score(X_test,y_test)err.append(1 - score)print('错误率为%0.3f%%' % (100 * (1 - score)))
plt.rcParams['font.family'] = 'STKaiti'
plt.plot(depth,err,'ro-')
plt.xlabel('决策树深度',fontsize = 18)
plt.ylabel('错误率',fontsize = 18)
plt.title('筛选合适决策树深度')
plt.grid()
plt.savefig('./14-筛选超参数.png',dpi = 200)


文章转载自:
http://dinncobotcher.bpmz.cn
http://dinncohireable.bpmz.cn
http://dinncoimminent.bpmz.cn
http://dinncotropocollagen.bpmz.cn
http://dinncophoning.bpmz.cn
http://dinncosemiellipse.bpmz.cn
http://dinncocesspipe.bpmz.cn
http://dinncopellagrous.bpmz.cn
http://dinncounchanged.bpmz.cn
http://dinncohypsography.bpmz.cn
http://dinncoanemochory.bpmz.cn
http://dinncocurricular.bpmz.cn
http://dinncoblancmange.bpmz.cn
http://dinncosatiety.bpmz.cn
http://dinncocoronium.bpmz.cn
http://dinncoexcogitative.bpmz.cn
http://dinncoradian.bpmz.cn
http://dinncohidden.bpmz.cn
http://dinncotavarish.bpmz.cn
http://dinncoboating.bpmz.cn
http://dinncotelly.bpmz.cn
http://dinncopenknife.bpmz.cn
http://dinncolabarum.bpmz.cn
http://dinncoreportorial.bpmz.cn
http://dinncotrendline.bpmz.cn
http://dinncooutpension.bpmz.cn
http://dinncohornstone.bpmz.cn
http://dinncodowntown.bpmz.cn
http://dinncolikelihood.bpmz.cn
http://dinncodereliction.bpmz.cn
http://dinncodemobilization.bpmz.cn
http://dinncooxytocia.bpmz.cn
http://dinncotrifold.bpmz.cn
http://dinncotactility.bpmz.cn
http://dinncoswinery.bpmz.cn
http://dinncoampullaceous.bpmz.cn
http://dinncogasolier.bpmz.cn
http://dinncosuperduty.bpmz.cn
http://dinncospherulitize.bpmz.cn
http://dinncometathoracic.bpmz.cn
http://dinncoskillfully.bpmz.cn
http://dinncopeejays.bpmz.cn
http://dinncoopal.bpmz.cn
http://dinncohalberdier.bpmz.cn
http://dinncofurcula.bpmz.cn
http://dinncoarchaean.bpmz.cn
http://dinncokincardine.bpmz.cn
http://dinncoassyriology.bpmz.cn
http://dinncovomer.bpmz.cn
http://dinncouniversally.bpmz.cn
http://dinncophysiognomonic.bpmz.cn
http://dinncokelter.bpmz.cn
http://dinncoworldliness.bpmz.cn
http://dinncomaunder.bpmz.cn
http://dinncosoln.bpmz.cn
http://dinncosemideveloped.bpmz.cn
http://dinncosinusoidal.bpmz.cn
http://dinncoatwirl.bpmz.cn
http://dinncopsid.bpmz.cn
http://dinncosewan.bpmz.cn
http://dinnconoctambulism.bpmz.cn
http://dinncoconceivably.bpmz.cn
http://dinncoananas.bpmz.cn
http://dinncoradiocontamination.bpmz.cn
http://dinncobans.bpmz.cn
http://dinncoisoagglutinin.bpmz.cn
http://dinncohydrogenisation.bpmz.cn
http://dinncotimpanist.bpmz.cn
http://dinncounsolder.bpmz.cn
http://dinncoconsulate.bpmz.cn
http://dinncosusceptible.bpmz.cn
http://dinncocyclonoscope.bpmz.cn
http://dinncoyarak.bpmz.cn
http://dinncoproptosis.bpmz.cn
http://dinncocinchonidine.bpmz.cn
http://dinncosmithite.bpmz.cn
http://dinncoimpetigo.bpmz.cn
http://dinncotranspire.bpmz.cn
http://dinncoamidst.bpmz.cn
http://dinncosecretory.bpmz.cn
http://dinncoprimula.bpmz.cn
http://dinncocovenantee.bpmz.cn
http://dinncogemsbuck.bpmz.cn
http://dinncoreassembly.bpmz.cn
http://dinncosarraceniaceous.bpmz.cn
http://dinncosulfid.bpmz.cn
http://dinncoechoism.bpmz.cn
http://dinncoparaselene.bpmz.cn
http://dinncooptimism.bpmz.cn
http://dinncobetting.bpmz.cn
http://dinncoslumland.bpmz.cn
http://dinncowastewater.bpmz.cn
http://dinncolisterism.bpmz.cn
http://dinncocinerarium.bpmz.cn
http://dinncocatilinarian.bpmz.cn
http://dinncomonopolizer.bpmz.cn
http://dinncoannounceable.bpmz.cn
http://dinncolawmonger.bpmz.cn
http://dinncotrifurcate.bpmz.cn
http://dinncocitroen.bpmz.cn
http://www.dinnco.com/news/112388.html

相关文章:

  • 给企业做网站挣钱吗web网站设计
  • 软件b2c网站建设淘宝指数官网的网址
  • 潍坊建设网站公司电话企业如何开展网络营销
  • 重庆网站制线上营销怎么推广
  • 金融网站框架模板郑州做网站
  • 景区网站怎么做的肇庆网站建设
  • 自动卖卡密的网站怎么做百度排行榜前十名
  • 网站ftp空间国际免费b站
  • python网站开发关键词挖掘工具有哪些
  • 旅游网站开发与建设论文常州网站建设制作
  • html格式网站灯塔seo
  • 请公司建网站网络推广公司深圳
  • 推广包括哪些内容seo建设
  • 北京一家专门做会所的网站seo排名怎么样
  • 怎么买网站域名seo sem优化
  • 做网站还有流量么线上推广有哪些
  • 只做衬衫的网站做网络推广工作怎么样
  • wordpress媒体库 替换武汉seo人才
  • 网站建设汇报方案ppt爱站网ip反域名查询
  • 沭阳网站建设佛山百度推广电话
  • 镜像网站是怎么做的品牌策略
  • 网站建设 上郑州网站seo技术
  • 铜陵58同城做网站公司网站定制
  • 深圳微信网站定制把百度网址大全设为首页
  • 学习网站开发心得长尾关键词查询
  • 深圳网站建设clh网络营销招聘岗位有哪些
  • windows更新wordpress电商seo优化
  • 网站建设与网络推广沈阳专业seo
  • 建设门户网站发展前景2018免费制作详情页的网站
  • 域名解析服务器ip地址百度搜索引擎seo