决策树实现手写体识别
文章目录
- 决策树识别手写体
- 前言
- 代码获取
- 实现步骤
- 所需的库
- 导入数据集
- 信息熵
- 选出信息增益最高的属性
- 选出信息增益率最高的属性
- 选出基尼指数最低的属性
- 生成决策树
- 展示树
- 测试决策树
- 简单实现演示
- 效果展示
- 信息增益
- 信息增益率
- 基尼指数
- 改进
- 改进效果
- 信息增益
- 信息增益率
- 基尼指数
- 结果分析
决策树识别手写体
前言
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。下面我们用决策树实现简单的手写体识别
代码获取
github
实现步骤
所需的库
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
from math import log
import operator
import pickle
import sklearn.datasets as datasets # 数据集模块
from sklearn.model_selection import train_test_split # 划分训练集和验证集
import numpy as np
导入数据集
这里我们使用sklearn的手写体数据集
def createDataSet():# 数据集X, y = datasets.load_digits(return_X_y=True)# 随机划分训练集和验证集,使用sklearn中的方法X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)X_train = np.hstack((X_train, y_train.reshape(-1, 1))) # 横向拼接labels = np.arange(64)X_train = X_train.tolist()labels = labels.tolist()return X_train, labels, X_test, y_test
信息熵
信息熵是度量样本集合纯度最常用的一种指标,其定义如下
H(X)=−∑xP(x)log2[P(x)]H(X)=-\sum_{x} P(x) \log _{2}[P(x)] H(X)=−x∑P(x)log2[P(x)]
其值越小,X的纯度越高。
然后我们需要通过特征选取得到信息增益最大的属性,信息增益的定义如下,样本集合
决策树实现手写体识别相关推荐
- libsvm Minist Hog 手写体识别
统计手写数字集的HOG特征 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 这篇文章是模式识别的小作业,利用sv ...
- python模拟手写笔迹_pytorch实现MNIST手写体识别
本文实例为大家分享了pytorch实现MNIST手写体识别的具体代码,供大家参考,具体内容如下 实验环境 pytorch 1.4 Windows 10 python 3.7 cuda 10.1(我笔记 ...
- TensorRT(3)-C++ API使用:mnist手写体识别
本节将介绍如何使用tensorRT C++ API 进行网络模型创建. 1 使用C++ API 进行 tensorRT 模型创建 还是通过 tensorRT官方给的一个例程来学习. 还是mnist手写 ...
- TensorRT(2)-基本使用:mnist手写体识别
结合 tensorRT官方给出的一个例程,介绍tensorRT的使用. 这个例程是mnist手写体识别.例程位于目录: /usr/src/tensorrt/samples/sampleMNIST 文件 ...
- 基于感知机的手写体识别
对于手写体的识别,我采用的是keras来实现的,首先搭建一个单层感知机的模型来训练,来观察其模型的预测效果. 学习步骤如下: 源码: from keras.datasets import mnist ...
- Python3实现简单可学习的手写体识别
0.目录 1.前言 2.通过pymssql与数据库的交互 3.通过pyqt与界面的交互 4.UI与数据库的交互 5.最后的main主函数 1.前言 版本:Python3.6.1 + PyQt5 + S ...
- [深度学习-实践]BP神经网络的Helloworld(手写体识别和Fashion_mnist)
前言 原理部分请看这里 [深度学习-原理]BP神经网络 Tensorflow2 实现一个简单的识别衣服的例子 数据集Fashion_mnist, 此数据集包含10类型的衣服 ('T-shirt/top ...
- python神经网络案例——CNN卷积神经网络实现mnist手写体识别
分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python教程全解 CNN卷积神经网络的理论教程参考 ...
- python神经网络案例——FC全连接神经网络实现mnist手写体识别
全栈工程师开发手册 (作者:栾鹏) python教程全解 FC全连接神经网络的理论教程参考 http://blog.csdn.net/luanpeng825485697/article/details ...
- R︱Softmax Regression建模 (MNIST 手写体识别和文档多分类应用)
本文转载自经管之家论坛, R语言中的Softmax Regression建模 (MNIST 手写体识别和文档多分类应用) R中的softmaxreg包,发自2016-09-09,链接:https:// ...
最新文章
- 【c++】【转】c++中的explicit关键字
- 禅道启动mysql报错_测试工具之在Linux服务器上部署禅道Bug管理系统
- leetcode142 环形链表II
- SQL 语句技巧--排名函数的使用实例
- ios kvo 要引入_iOS中KVO的使用
- ubuntu1204 dvd 用tweak后界面起不来 swap设置4g足够32位系统软件用
- IDEA运行main,junit方法报错Class not found
- 春节过后,外贸人如何快速抓住采购旺季,高效跟进客户
- ffmpeg源码国内gitee下载
- android+桌面组件开发,Android桌面小部件开发,及注意事项
- java中怎么编写一个类_Java入门(8) 创建新类
- 优化你简历的8个技巧
- Mac上搭建虚拟机 安装windows系列
- 转:超越一切的熵增定律
- 第1章 开篇-为什么要做CI/CD?
- excel多表合并为一个表
- Mysql语句编写循环
- 计算机hppusg.exe应用程序错误,spoolsv.exe-应用程序错误
- 【美团王兴饭否DAY1】关于CEO的思考
- 怎样用计算机告白,计算机学科的告白情话
热门文章
- u3d_fw 框架使用
- 利用gflags自定义标志的使用方法
- 平面中判断点在三角形内算法(重心法)
- Insyde uefi 隐藏设置_固件级安全,微软安全工具新增UEFI扫描功能
- 人脸对齐(一)--定义及作用
- dlib人脸配准(人脸对齐)
- 西门子g120变频器接线图_西门子变频器调试软件汇总starter,starterdrive,v-assistant
- 三维点云数据处理软件供技术原理说明_三维点云模型
- 视觉开发应用1- 机器视觉基本知识之工业相机
- matlab 转子振动,转子—支承系统振动不平衡响应的MATLAB实现