决策树(Decision Tree)算法是是最经常使用的数据挖掘算法之一。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是 if-then 规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。

一个例子,一个叫做 "二十个问题" 的游戏,游戏的规则很简单:参与游戏的一方在脑海中想某个事物,其他参与者向他提问,只允许提 20 个问题,问题的答案也只能用对或错回答。问问题的人通过推断分解,逐步缩小待猜测事物的范围,最后得到游戏的答案 ,就是一个典型的决策树。

在实际中,决策树有很多典型应用,例如用户流失预测、 精确营销、 客户获取、个性偏好、 信用分析、 欺诈预警 智能预警、问题分类预测、可靠性与安全预测、故障诊断、故障预测、网上质量预测……

作为一个码农经常会不停的敲if, else if, else,其实就已经在用到决策树的思想了。只是你有没有想过,有这么多条件,用哪个条件特征先做if,哪个条件特征后做if比较优呢?怎么准确的定量选择这个标准就是决策树机器学习算法的关键了。1970年代,一个叫昆兰的大牛找到了用信息论中的熵来度量决策树的决策选择过程,方法一出,它的简洁和高效就引起了轰动,昆兰把这个算法叫做ID3,ID3后来进一步发展为C4.5、CART等算法。

难以避免,算法要讲几个概念:

信息量:跟随机事件的概率有关。越小概率的事情发生了产生的信息量越大; 如上海发生地震了,(上海多低的概率发生地震啊,信息量巨大)。 信息量应当是非负的,必然发生的信息量为0; 如太阳从东方升起,(肯定发生嘛,没什么信息量)。

香农熵: 是一种信息的度量方式,表示信息的混乱程度,也就是说:信息越有序,信息熵越低。例如:火柴有序放在火柴盒里,熵值很低,相反,熵值很高。

信息增益(information gain): 在划分数据集前后信息发生的变化称为信息增益。

基尼指数(Gini index) 一种数据的不纯度的度量方法,和信息熵相似,同样可以用来度量数据的不确定性

决策树学习通常包括 3 个步骤:特征选择、决策树的生成和决策树的修剪。` 信息增益比: 如果简单的以g(y, A) 作为标准的话,会存在偏向于选择取值多的特征的问题。 最终得到的决策树将会是一颗很胖很矮的决策树,并不是我们想要的。 信息增益比可以解决这个问题,就是在信息增益的基础上除以信息熵。

下面以决策树,对股票市场进行一下应用,选取2017年5月的A股市场数据,把几个财务指标当做特征,依据涨跌划分为4类

xdf.loc[(xdf['changeration']>=10),'Result']=0
xdf.loc[((xdf['changeration']<10) & (xdf['changeration']> 0)),'Result']=1
xdf.loc[((xdf['changeration']<0) & (xdf['changeration']>-10)),'Result']=2
xdf.loc[(xdf['changeration']<-10),'Result']=3

超过10%涨幅的为第一类,跌幅超过10%的为第四类。

选取'pe','outstanding','rev','profit','eps','roe'作为训练特征。

train_data=train[['pe','outstanding','rev','profit','eps','roe']]
train_label=train['Result']test_data=test[['pe','outstanding','rev','profit','eps','roe']]
test_label=test['Result']dctree=tree.DecisionTreeClassifier()
dctree.fit(train_data,train_label)predict=dctree.predict(test_data)
print(predict)
print(confusion_matrix(test_label,predict))
print(classification_report(predict,test_label))
print(dctree.feature_importances_)
feature_importances = pd.Series(dctree.feature_importances_, index=train_data.columns)

各个财务指标的重要程度排名如下:

应用决策树算法进行股票财务特征分析相关推荐

  1. 房价预测(基于决策树算法)

    预测波士顿房价 第一步. 导入数据 在这个项目中,将使用波士顿房屋信息数据来训练和测试一个模型,并对模型的性能和预测能力进行评估.我们希望可以通过该模型实现对房屋的价值预估,提高房地产经纪人的工作效率 ...

  2. 决策树算法之鸢尾花特征分类可视化详解【机器学习】

    文章目录 一.前言 1.1 本文原理 1.2 本文目的 二.实验过程 2.1 使用scikit-learn机器学习包的决策树算法,使用4个特征对鸢尾花进行分类: 2.2使用ID3算法对天气与踢球数据集 ...

  3. 【机器学习入门】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集

    各位同学好,今天和大家分享一下python机器学习中的决策树算法,在上一节中我介绍了决策树算法的基本原理,这一节,我将通过实例应用带大家进一步认识这个算法.文末有完整代码和数据集,需要的自取.那我们开 ...

  4. 【机器学习入门】(4) 决策树算法理论:算法原理、信息熵、信息增益、预剪枝、后剪枝、算法选择

    各位同学好,今天我向大家介绍一下python机器学习中的决策树算法的基本原理.内容主要有: (1) 概念理解:(2) 信息熵:(3) 信息增益:(4) 算法选择:(5) 预剪枝和后剪枝. python ...

  5. 决策树算法原理(ID3,C4.5)

    决策树算法原理(CART分类树) CART回归树 决策树的剪枝 决策树可以作为分类算法,也可以作为回归算法,同时特别适合集成学习比如随机森林. 1. 决策树ID3算法的信息论基础   1970年昆兰找 ...

  6. 每日一问 - 关于决策树算法

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 来源:Datawhale优秀回答者 将在留言区,Datawhale高校群 ...

  7. 最常用的决策树算法!Random Forest、Adaboost、GBDT 算法

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 本文主要介绍基于集成学习的决策树,其主要通过不同学习框架生产基学习器,并综合所有基学习 ...

  8. 决策树算法的原理(接地气版)

    ↑↑点击上方蓝字,N个G的惊喜 ❝ 决策树( )是一类很常见很经典的机器学习算法,既可以作为分类算法也可以作为回归算法.同时也适合许多集成算法,如 , ,以后会逐一介绍.本篇介绍一下决策树算法的原理. ...

  9. 决策树算法之特征工程-特征提取

    决策树算法之特征工程-特征提取 什么是特征提取呢?   [把数据转化为机器更加容易识别的数据] 1 特征提取 1.1 定义 将任意数据(如文本或图像)转换为可用于机器学习的数字特征 注:特征值化是为了 ...

最新文章

  1. CMake编译Makefile
  2. 开源ImageFilter库v0.4:新增26种图片效果
  3. python教程:ConfigParser模块使用教程
  4. hyperterminal使用教程_如何在Win7中安装使用超级终端Hyper Terminal(转)
  5. 利用记录型信号量解决不会出现死锁的哲学家就餐问题
  6. SAP License:外购和自产货物视同销售业务理解
  7. eBPF for Windows开源项目
  8. Linux基础软件威胁疑云:从已知到“未知”
  9. iOS设备是否越狱的判断代码
  10. 齐齐哈尔鹤城计算机学校,齐齐哈尔市鹤城高级中学
  11. android 车载安富蓝牙电话开发,Android平台BLE低功耗蓝牙开发
  12. html发起微信或支付宝支付,vue实现-微信网页中唤起支付宝支付
  13. 学校智慧校园平台管理系统小程序开发制作
  14. 图像处理:基于cv2.inpaint()图像修补
  15. 计算机组装要哪些硬件,电脑配件,小编教你电脑组装需要哪些配件
  16. 【100 种语言速成】第 1 节:Python
  17. 技术干货丨《大天使之剑H5》主程与项目总监:H5游戏的压缩与优化经验
  18. “买家秀“与“卖家秀”
  19. OpenCL学习笔记一
  20. 下一个行业风口:NFT 数字藏品,是机遇还是泡沫?

热门文章

  1. OPOS系统正式启动
  2. 数电课设——555定时器设计数字时钟
  3. Oracle一体机电源灯闪烁,24V电源模块通电后,DC OK灯闪烁,输出24v频繁通断-工业支持中心-西门子中国...
  4. antd pro项目中 antd Upload组件 基于 lrz 在上传前做图片压缩
  5. 【97期分享】4款复古风PPT模板免费下载
  6. 优秀企业文化学习(学习节选)
  7. 【墨者学院】WebShell文件上传漏洞分析溯源(第3题)
  8. java 64位 默认分配内存大小_JVM默认内存大小
  9. 【转】手机软件商店(wiki)
  10. 系统分析与设计团队项目第二次