学习笔记1:分类方法

  • 名词:

  • 分类:是在已有数据的基础上学会一个分类函数或构造出一个分类模型(即我们通常所说的分类器(Classifier))。

  • 分类器:是数据挖掘中对样本进行分类的方法的统称,包含决策树、逻辑回归、朴素贝叶斯、神经网络等算法。

  • 监督学习:利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。 监督学习是从标记的训练数据来推断一个功能的机器学习任务。 训练数据包括一套训练示例。 在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。

  • 偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据,如下图第二行所示。

  • 方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,如下图右列所示。
    在这里插入图片描述

  • 泛化能力:机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。

  • 过拟合:给定一个假设空间H,一个假设h属于H,如果存在其他的假设h’属于H,使得在训练样例上h的错误率比h’小,但在整个实例分布上h’比h的错误率小,那么就说假设h过度拟合训练数据。

  • 噪音数据:即无意义的数据,包含所有难以被机器正确理解和翻译的数据,如非结构化文本。

一、数据挖掘任务分类:

  1. 预测任务:根据其它属性的值,预测特定属性的值。
  2. 描述任务: 概括数据中潜在联系的模式(相关性,趋势,聚类,轨迹和异常)。

二、分类算法:

1. 定义:

通过对数据集的学习,得到一个目标函数f(即模型),将每个属性值x映射到目标属性y(类),且y必须是离散的(否则属于回归算法)
(即对数据进行分类,将他们分到已知的类别中。)
是一个督促学习的过程。
分类规则:分类算法往往需要“带标签”的数据,让机器执行这样的规则。
目标数据都有哪些特征以及这些特征对应什么标签都必须是已知的。然后模型会遍历每一笔数据,最终得到我们我们所认为的规则。所以分类算法往往拥有更精确的计算结果。

2. 分类的基本流程:

  1. 模型建立
    (1)先将生活中的数据转换为计算机可以理解的数据。
    (2)模型的描述:
    稀疏性:如果数据集非对称属性中,“是”的值很少则认为稀疏性高
    维度:属性个数
  • 特征选择:减少特征数量、降维,使模型泛化能力更强,减少过拟合
    增强对特征和特征值之间的理解
    数据和特征决定了机器学习的上限,而算法和模型只能去逼近这个上限。
    在这里插入图片描述

  • 数据类型:数据集可以看成数据对象的集合,数据对象的其他名字是记录、点、向量、模式、事件、样本、实体,属性的其他名字为变量、特性、字段、特征、维,属性的数量称为维度

  • 属性类型和属性转换:先确定所选特征的类型,通过属性转换成计算机可以理解的格式。
    还可以根据值的个数,将属性区分为离散属性或者连续属性,如果离散属性中每个值的价值相同如,“皮肤颜色”这个属性中,“黑”,“白”,“黄”三个值的价值相同,但“是否为黑人”这个属性中,“是”,“否”,可能“是”在实际应用中价值更大,前者称为**“对称属性”,后者称为“非对称属性”**。

  • 模型建立:
    通过以上步骤就可将生活中的数据转换成计算机可理解的数据。
    在这里插入图片描述

  1. 算法选择
    (1)算法的分类:
  • 基于距离:KNN算法
  • 基于统计:贝叶斯算法
  • 基于规则:决策树算法
  • 基于神经网络:神经网络算法
    (2)分类算法按模型可以分为一下两类:
  • 预测性模型:直接告诉你数据应被分到哪个类
  • 概率性模型:不直接告诉你结果,但告诉你属于每个类的概率
  1. 性能与结果的衡量
  • 准确率:指模型正确地预测新的或未见过的数据的类标号的能力,这也是模型的首要能力。如果一个模型的分类准确率小于百分之五十,那么可以认为其结果是无价值的。在其他条件等同的情况下,当然首选准确率高的分类方法。
  • 速度:**指产生和使用模型的时间复杂度。**产生模型的试验数据集通常是巨量的,因为一般情况下其数量和分类准确率成正比。如果产生和使用模型的时间过长,将严重影响用户的使用。
  • 稳健性:**指给定噪声数据或具有空缺值的数据,模型正确预测的能力。**现实中的数据库通常有噪声,有时还很大。如果一个分类器不善于消除噪声的影响,将严重影响分类准确率。
  • 可伸缩性:**指给定大量数据,有效的构造模型的能力。**有些分类器在数据量很小的情况下可以有效的构造模型,随着数据量的增大,其构造模型的能力显著下降,这最终也会影响分类准确率。
  • 可解释性:指学习模型提供的理解和洞察的层次。

准确率主要通过混淆矩阵计算。

常用的评估指标:
混淆矩阵:将模型预测错了或预测对了的信息归纳到一张表中。
请添加图片描述

  • 若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive )
  • 若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative )
  • 若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive )
  • 若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative )

召回率(recall,R)/敏感性sensitivity:针对good的正确覆盖率,预测对的good实例/实际good的实例 =a/(a+b) (不适合样本不均衡的情况)
精确率(precision,P):预测为good的所有样本中实际为good搜所占的数目,预测对的good实例/预测good的实例 =a/(a+c)
f-measure:是一种统计量,常用于评价模型的好坏,取值在0到1之间。 f-measure=(2×P×R)/(R+P)

# 引入所需工具包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 混淆矩阵
from sklearn.metrics import confusion_matrix
# confusion_matrix(y_true,y_pred,labels=None,sample_weight=None)
# 准确率
from sklearn.metrics import accuracy_score
# accuracy_score(y_true,y_pred,normalize=True)
# normalize 默认为True,返回正确分类的比例,若为False则返回正确分类的样本数
# 精确率
from sklearn.metrics import precision_score
# precision_score(y_true,y_pred)
from sklearn.metrics import recall_score
# 召回率
# recall_score(y_true,y_pred)
# F1-score
from sklearn.metrics import f1_score
# f1-score(y_true,y_pred)
# P-R曲线
from sklearn.metrics import precision_recall_curve
# precision, recall, thresholds = precision_recall_curve(y_true, y_pred)
# plt.plot(precision, recall)
# thresholds 每个测试样本属于正样本的概率,依次选取不同阈值,大于等于阈值认为正样本,小于则为负样本,计算对应的precision与reacll值
# ROC曲线
from sklearn.metrics import roc_curve
# # fpr, tpr, thresholds = precision_recall_curve(y_true, y_pred)
# plt.plot(fpr, tpr)
# thresholds 与P-R类似
# K-S曲线
# fpr,tpr,thresholds=roc_curve(y_true, y_pred)
# KS=abs(fpr-tpr).max()
# AUC
from sklearn.metrics import roc_auc_score
# roc_auc_score(y_true, y_scores)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值