分类数据

一文帮你搞懂何为信息增益——决策树必备

↘锁芯ラ 提交于 2020-03-23 12:01:33
一、何为决策树 决策树是监督学习算法之一,并且是一种基本的分类与回归方法;决策树也分为回归树和分类树,本文讨论的是分类树。如果了解或者学过数据结构,肯定对"树"这个概念是不陌生的,在此基础上学习掌握决策树也会更加容易,下面通过一个小例子帮助理解何为决策树。 下图所示流程图即为一个决策树,矩形代表判断模块、椭圆形则代表终止模块,表示已经得出结论可以终止程序的运行;左右箭头表示分支,可以通过它到达另一判断模块或终止模块。 这个流程图主要是假想一个择偶系统,之前网上不流行这样一句话嘛," 阿姨我不想努力了 ",该树就以是否想继续努力为判断依据,如果你不想继续努力了,你可以选择找一个" 富婆 ";反之,你想找一个女朋友一起奋斗,这里又以女孩的性格为判断依据,如果喜欢性格温柔的,即选择" 温柔女孩 ",若喜欢性格高冷的,则选择" 酷女孩 "。 整个决策树可以看成一个 if—then 规则,即"如果判断条件,则……",并且需要注意以下三点: 根节点到每一个子节点的路径可构成一条规则。 每条路径上中间节点的特征对应该条规则的判断条件,叶子节点的标签对应该规则的结论。 每一个实例都被有且仅有一条实例覆盖,即实例的特征与路径上的特征一致。 二、决策树的流程 收集数据:公开数据源或爬虫等方式。 准备数据:树构造算法只适用于标称型数据,因此数值型数据必须离散化。 分析数据:可以使用任何方法

决策树的构建及可视化——帮自己配副隐形眼镜

女生的网名这么多〃 提交于 2020-03-23 12:00:16
前文简介 上一篇文章中主要介绍了以下几方面: 决策树的简介 决策树的流程 熵的定义及如何计算熵 信息增益的定义及如何计算信息增益 依据信息增益划分数据集 本文以一个新的数据集(隐形眼镜数据集)为基础实现构建决策树、决策树的保存与加载、利用决策树分类、决策树的可视化,前文的知识不在过多概述,着重介绍这四个方面。 先大致了解一下数据集: 这份数据源至UCI数据库,其共有4个特征分别为 age (年龄)、 prescript (症状)、 astigmatic (闪光)、 tearRate (泪液产生率)以及一个分类标签 class ,该分类包含硬材质、软材质和不应配带三种。 为了方便处理,对样本做以下处理: age:young—>0、pre—>1、presbyopic—>2 prescript:myope—>0、hyper—>1 astigmatic:no—>0、yes—>1 tearRate:reduced—>0、normal—>1 四、决策树的构建 在构造决策树之前,先回顾一下前几个子模块的工作原理:先获取原始数据集,然后基于最优特征划分数据集,当数据集特征大于两个时,第一次划分之后,数据将被向下传递至树的下一个节点,在这个节点上,在此划分数据,此过程是利用递归原理处理数据集。 什么时候划分结束呢?当程序遍历完所有划分数据集的属性,或者每个分支下所有实例分类一致时代表划分数据集结束。

垃圾邮件分类

ε祈祈猫儿з 提交于 2020-03-21 04:24:11
1. 数据准备:收集数据与读取 2. 数据预处理:处理数据 3. 训练集与测试集:将先验数据按一定比例进行拆分。 4. 提取数据特征,将文本解析为词向量 。 5. 训练模型:建立模型,用训练数据训练模型。即根据训练样本集,计算词项出现的概率P(xi|y),后得到各类下词汇出现概率的向量 。 6. 测试模型:用测试数据集评估模型预测的正确率。 混淆矩阵 准确率、精确率、召回率、F值 7. 预测一封新邮件的类别。 8. 考虑如何进行中文的文本分类(期末作业之一)。 要点: 理解朴素贝叶斯算法 理解机器学习算法建模过程 理解文本常用处理流程 理解模型评估方法 #垃圾邮件分类# import csv import nltk from nltk.corpus import stopwords from nltk.stem import WordNetLemmatizer text = '''As per your request 'Melle Melle (Oru Minnaminunginte Nurungu Vettam)' has been set as your callertune for all Callers. Press *9 to copy your friends Callertune''' #预处理# def preprocessing(text): #分词#

python机器学习之KNN算法

跟風遠走 提交于 2020-03-20 23:30:22
K邻近算法(kNeighbrClassifier/KNN):原理为 欧几里得距离+最近+投票(权重)+概率    根据距离的远近进行分类   欧几里得距离:多维空间中各点之间的距离       缺点: 时间复杂度和空间 复杂度较大    注 意:当训练样本数据少的时候,样本比例一定要相同   KNN算法分类电影 import numpy import pandas #导入Excel文件 from sklearn.neighbors import KNeighborsClassifier #机器学习算法库,没有深度学习算法 movie=pandas.read_excel(r"D:\Python\代码\Machine-Learn\1-KNN\data\movie.xlsx",sheet_name=0) movie 电影名称 武打镜头 接吻镜头 分类情况 0 大话西游 36 1 动作片 1 杀破狼 43 2 动作片 2 前任3 0 10 爱情片 3 战狼2 59 1 动作片 4 泰坦尼克号 1 15 爱情片 5 新余心愿 2 19 爱情片 movie=pandas.read_excel(r"D:\Python\代码\Machine-Learn\1-KNN\data\movie.xlsx",sheet_name=0) x=movie[["武打镜头","接吻镜头"]]

《网络安全态势感知》读书笔记

蓝咒 提交于 2020-03-19 18:06:28
本书涉及面较广,但是白话较多,没有太多的干货。寸之深,亩只阔,适合作为科普读物快速阅读。 文章目录 Ⅰ 基础知识 1 开启网络安全态势感知的旅程 2 大数据平台和技术 2.1 大数据基础 2.1.1 大数据关键技术 2.1.2 大数据计算模式 2.2 大数据主流平台框架 2.2.1 Hadoop 2.2.2 Spark 2.2.3 Storm 2.3 网络安全态势感知架构 2.4 大数据采集与预处理技术 2.5 大数据存储与管理技术 2.6 大数据处理与分析技术 2.7 大数据可视化技术 Ⅱ 态势提取 3 网络安全数据范围 3.1 完整内容数据 3.2 提取内容数据 3.3 会话数据 3.4 统计数据 3.5 元数据 3.6 日志数据 3.7 告警数据 4 网络安全数据采集 4.1 制定数据采集计划 4.2 主动式采集 4.3 被动式采集 4.4 数据采集工具 4.5 采集点部署 5 网络安全数据预处理 5.1 数据清洗 5.2 数据集成 5.3 数据归约 5.4 数据变换 5.5 数据融合 Ⅲ 态势提取 6 网络安全检测与分析 6.1 入侵检测 6.1.1 IDS分类 6.1.2 入侵检测的分析方法 6.2 入侵防御 6.2.1 IPS分类 6.3 入侵容忍 6.4 安全分析 6.4.1 安全分析流程 6.4.2 数据包分析 6.4.3 计算机/网络取证 6.4.4 恶意软件分析

5.机器学习之朴素贝叶斯详解

强颜欢笑 提交于 2020-03-18 01:11:41
本篇博客主要详细介绍朴素贝叶斯模型。首先贝叶斯分类器是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类器。而朴素贝叶斯分类器是贝叶斯分类器中最简单,也是最常见的一种分类方法。并且,朴素贝叶斯算法仍然是流行的十大挖掘算法之一,该算法是有监督的学习算法,解决的是分类问题。该算法的优点在于简单易懂、学习效率高、在某些领域的分类问题中能够与决策树、神经网络相媲美。但由于该算法以自变量之间的独立(条件特征独立)性和连续变量的正态性假设为前提(这个假设在实际应用中往往是不成立的),就会导致算法精度在某种程度上受影响。 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法,是经典的机器学习算法之一。最为广泛的两种分类模型是决策树(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier 或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。 历史背景解读: 18世纪英国数学家托马斯·贝叶斯(Thomas Bayes,1702~1761)提出过一种看似显而易见的观点:

概率图模型学习笔记:HMM、MEMM、CRF

孤街浪徒 提交于 2020-03-17 14:40:46
作者:Scofield 链接:https://www.zhihu.com/question/35866596/answer/236886066 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 so far till now, 我还没见到过将CRF讲的个明明白白的。一个都没。就不能不抄来抄去吗? 我打算搞一个这样的版本,无门槛理解的。 ——20170927 陆陆续续把调研学习工作完成了,虽然历时有点久,现在put上来。评论里的同学也等不及了时不时催我,所以不敢怠慢啊…… 总结的还算比较体系化,蛮长的,请读者慢慢看,肯定有收获的。 (好痛苦,这么多公式都要在知乎上重输;是在MD上写的,在知乎上没想到格式这么难看……) ——20180129 概率图模型学习笔记:HMM、MEMM、CRF 一、Preface 二、Prerequisite 2.1 概率图 2.1.1 概览 2.1.2 有向图 vs. 无向图 2.1.3 马尔科夫假设&马尔科夫性 2.2 判别式模型 vs. 生成式模型 2.3 序列建模 三、HMM 3.1 理解HMM 3.2 模型运行过程 3.2.1 学习过程 3.2.2 序列标注(解码)过程 3.2.3 序列概率过程 四、MEMM 4.1 理解MEMM 4.2 模型运行过程 4.2.1 学习过程 4.2.2 序列标注(解码)过程 4.2.3

3.机器学习之决策树详解

半腔热情 提交于 2020-03-16 13:47:41
本篇博客主要介绍机器学习中的决策树模型。决策树算法在机器学习中算是很经典的一个算法系列。它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林。决策树模型是一类算法的集合,在数据挖掘十大算法中,具体的决策树算法占有两席位置,即C4.5和CART算法。 决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话: 女儿:多大年纪了? 母亲:26。 女儿:长的帅不帅? 母亲:挺帅的。女儿:收入高不? 母亲:不算很高,中等情况。 女儿:是公务员不? 母亲:是,在税务局上班呢。 女儿:那好,我去见见。 这个女孩的决策过程就是典型的分类树决策。相当于通过年龄、长相、收入和是否公务员对将男人分为两个类别:见和不见。假设这个女孩对男人的要求是:30岁以下、长相中等以上并且是高收入者或中等以上收入的公务员,那么这个可以用下图表示女孩的决策逻辑:  决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。 决策树是在已知各种情况发生概率((各个样本数据出现中

Python实现鸢尾花数据集分类问题——基于skearn的SVM

扶醉桌前 提交于 2020-03-16 00:14:10
Python实现鸢尾花数据集分类问题——基于skearn的SVM 代码如下: 1 # !/usr/bin/env python 2 # encoding: utf-8 3 __author__ = 'Xiaolin Shen' 4 from sklearn import svm 5 import numpy as np 6 from sklearn import model_selection 7 import matplotlib.pyplot as plt 8 import matplotlib as mpl 9 from matplotlib import colors 10 11 12 13 # 当使用numpy中的loadtxt函数导入该数据集时,假设数据类型dtype为浮点型,但是很明显数据集的第五列的数据类型是字符串并不是浮点型。 14 # 因此需要额外做一个工作,即通过loadtxt()函数中的converters参数将第五列通过转换函数映射成浮点类型的数据。 15 # 首先,我们要写出一个转换函数: 16 # 定义一个函数,将不同类别标签与数字相对应 17 def iris_type(s): 18 class_label={b'Iris-setosa':0,b'Iris-versicolor':1,b'Iris-virginica':2} 19 return

SVM简介及sklearn参数

吃可爱长大的小学妹 提交于 2020-03-15 14:01:26
1.SVM简介   SVM方法建立在统计学VC维和结构风险最小化原则上,既可以用于分类(二/多分类)、也可用于回归和异常值检测。SVM具有良好的鲁棒性,对未知数据拥有很强的泛化能力,特别是在数据量较少的情况下,相较其他传统机器学习算法具有更优的性能。    使用SVM作为模型时,通常采用如下流程: 对样本数据进行归一化 应用核函数对样本进行映射(最常采用和核函数是RBF和Linear,在样本线性可分时,Linear效果要比RBF好) 用cross-validation和grid-search对超参数进行优选 用最优参数训练得到模型 测试   sklearn中支持向量分类主要有三种方法:SVC、NuSVC、LinearSVC,扩展为三个支持向量回归方法:SVR、NuSVR、LinearSVR。   SVC和NuSVC方法基本一致,唯一区别就是损失函数的度量方式不同(NuSVC中的nu参数和SVC中的C参数);LinearSVC是实现线性核函数的支持向量分类,没有kernel参数,也缺少一些方法的属性,如support_等。 2. 参数 SVC  class sklearn.svm. SVC ( C=1.0 , kernel='rbf' , degree=3 , gamma='auto' , coef0=0.0 , shrinking=True , probability=False