读书笔记4

1 概念

1multi-class multi-label的区别

     multi-class是相对于binary二分类来说的,不止有两个类别,可能是3个类别取一个(如iris分类),或者是10个类别取一个(如手写数字识别mnist)。

     multi-label多标签分类问题很常见,多标签分类指的是为一组对象同时预测多个分类标签的任务。比如一部电影可以同时被分为动作片和喜剧片, 一则新闻可以同时属于政治和法律,生物学中的基因功能预测,场景识别,疾病诊断等。

2)使用KNN算法进行多标签分类 

      k-近邻算法(KNN)是一种简单易懂且常用的分类算法,同时也可以用于多标签分类。

2 数据集介绍

      Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

     Iris里有两个属性iris.data,iris.target。data是一个矩阵,每一列代表某个被测量的鸢尾植物,它的萼片或花瓣的长或宽,一共4列,一共有150条记录。

而target是一个数组,存储了data中150条记录每条记录属于哪一类鸢尾植物,分别是0,1,2。对应Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),以及Iris Virginica(维吉尼亚鸢尾)。

3 基础知识

1iris.target.reshape(-1,1),结果变为列形式。

2sklearnpython重要机器学习库,其中有大量的机器学习算法,如:分类、回归、降维以及聚类。

sklearn.metrics.f1_score

       计算F1分数,也称为平衡F分数或F度量值。F1得分可以为精确度和召回率的加权平均值,其中F1得分达到其最佳值为1,最差得分为0。精确度和召回率对F1得分的相对贡献相等。F1得分的公式为:

       F1 = 2 * (precision * recall) / (precision + recall)

 sklearn.metrics.f1_score(y_true,y_pred,*,labels=None,pos_label=1,average="binary",sample_weight=None,zero_division="warn")

参数介绍

y_true:真实目标值。

y_pred:分类器返回的估计目标。

labels:array-like, default=None,average!='binary'时要包括的一组标签,如果averageNone,则是标签的顺序,可以排除数据中存在的标签。对于多标签目标,标签是列索引。 默认情况下,y_truey_pred中的所有标签均按排序顺序使用。

pos_label:str or int, default=1average ='binary'。如果数据是多类或多标签的,则将被忽略;设置labels=[pos_label]average!='binary'该标签的得分。

average:{'micro', 'macro', 'samples', 'weighted', 'binary'} or None, \ default='binary'

对于多类/多标签目标,此参数是必需的。如果为None,则返回每个类的得分。否则,将确定数据执行的平均类型。

'binary'pos_label指定类的结果,仅当目标(y_ {truepred})为二分类才适用。
'micro'精确度是结果相关性的度量,而召回率是返回多少真正相关的结果的度量。通过计算真正例、假负例和假正例的总数来全局计算度量。
'macro'计算每个标签的度量,并找到其未加权平均值。没有考虑标签不平衡。

'weighted'计算每个标签的度量,并找到它们受支持的平均权重(每个标签的真实实例数)。这会更改‘macro’以解决标签不平衡的问题,可能导致F-score不在精确度和召回率之间。

'samples'计算每个实例的度量,并找到它们的平均值(仅对不同于accuracy_score的多标签分类有意义)。

在多类别和多标签的情况下,为每一类的F1分数的均值,类权重取决于average参数。

示例

4 步骤

1加载sklearn.datasets中的数据集“load_iris()”;

2将其拆分为训练集和测试集;

3拟合模型,即在训练集上训练模型;

4对测试集进行预测。

5 核心代码

# 导入包

# 加载数据集

'''
对加载的数据进行数据分割,X_train,X_test Y_train,Y_test分别表示训练集特征、测试集特征、训练集标签、测试集标签。
'''

# n_neighbors=5

# 使用训练数据进行模型训练
 
# 预测

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值