精华内容
下载资源
问答
  • 什么是聚类分析?聚类分析方法的类别

    万次阅读 多人点赞 2019-07-03 21:09:55
    聚类分析是将数据对象的集合分组为由类似的对象组成的多个类的分析过程。 基本概念 聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于...

    聚类分析是指将数据对象的集合分组为由类似的对象组成的多个类的分析过程。

    基本概念

    聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于相同簇中的数据实例彼此相同,处于不同簇中的实例彼此不同。

    聚类技术通常又被称为无监督学习,与监督学习不同的是,在簇中那些表示数据类别的分类或者分组信息是没有的。

    数据之间的相似性是通过定义一个距离或者相似性系数来判别的。图 1 显示了一个按照数据对象之间的距离进行聚类的示例,距离相近的数据对象被划分为一个簇。

    聚类分析示意
    图 1  聚类分析示意

    聚类分析可以应用在数据预处理过程中,对于复杂结构的多维数据可以通过聚类分析的方法对数据进行聚集,使复杂结构数据标准化。

    聚类分析还可以用来发现数据项之间的依赖关系,从而去除或合并有密切依赖关系的数据项。聚类分析也可以为某些数据挖掘方法(如关联规则、粗糙集方法),提供预处理功能。

    在商业上,聚类分析是细分市场的有效工具,被用来发现不同的客户群,并且它通过对不同的客户群的特征的刻画,被用于研究消费者行为,寻找新的潜在市场。

    在生物上,聚类分析被用来对动植物和基因进行分类,以获取对种群固有结构的认识。

    在保险行业上,聚类分析可以通过平均消费来鉴定汽车保险单持有者的分组,同时可以根据住宅类型、价值、地理位置来鉴定城市的房产分组。

    在互联网应用上,聚类分析被用来在网上进行文档归类。

    在电子商务上,聚类分析通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,从而帮助电子商务企业了解自己的客户,向客户提供更合适的服务。

    聚类分析方法的类别

    目前存在大量的聚类算法,算法的选择取决于数据的类型、聚类的目的和具体应用。聚类算法主要分为 5 大类:基于划分的聚类方法、基于层次的聚类方法、基于密度的聚类方法、基于网格的聚类方法和基于模型的聚类方法。

    1. 基于划分的聚类方法

    基于划分的聚类方法是一种自顶向下的方法,对于给定的 n 个数据对象的数据集 D,将数据对象组织成 k(k≤n) 个分区,其中,每个分区代表一个簇。图 2 就是基于划分的聚类方法的示意图。

    层次聚类算法示意
    图 2  层次聚类算法示意

    基于划分的聚类方法中,最经典的就是k-平均(k-means)算法和 k-中心(k-medoids)算法,很多算法都是由这两个算法改进而来的。

    基于划分的聚类方法的优点是,收敛速度快,缺点是,它要求类别数目 k 可以合理地估计,并且初始中心的选择和噪声会对聚类结果产生很大影响。

    2. 基于层次的聚类方法

    基于层次的聚类方法是指对给定的数据进行层次分解,直到满足某种条件为止。该算法根据层次分解的顺序分为自底向上法和自顶向下法,即凝聚式层次聚类算法和分裂式层次聚类算法。

    1)自底向上法。

    首先,每个数据对象都是一个簇,计算数据对象之间的距离,每次将距离最近的点合并到同一个簇。然后,计算簇与簇之间的距离,将距离最近的簇合并为一个大簇。不停地合并,直到合成了一个簇,或者达到某个终止条件为止。

    簇与簇的距离的计算方法有最短距离法、中间距离法、类平均法等,其中,最短距离法是将簇与簇的距离定义为簇与簇之间数据对象的最短距离。自底向上法的代表算法是AGNES(AGglomerativeNESing)算法。

    2)自顶向下法。

    该方法在一开始所有个体都属于一个簇,然后逐渐细分为更小的簇,直到最终每个数据对象都在不同的簇中,或者达到某个终止条件为止。自顶向下法的代表算法是 DIANA(DivisiveANAlysis)算法。

    基于层次的聚类算法的主要优点包括,距离和规则的相似度容易定义,限制少,不需要预先制定簇的个数,可以发现簇的层次关系。基于层次的聚类算法的主要缺点包括,计算复杂度太高,奇异值也能产生很大影响,算法很可能聚类成链状。

    3. 基于密度的聚类方法

    基于密度的聚类方法的主要目标是寻找被低密度区域分离的高密度区域。与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的簇。

    基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。

    这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇,如图 3 所示。

    基于密度的聚类方法中最具代表性的是 DBSAN 算法、OPTICS 算法和 DENCLUE 算法。 图 2 是基于层次的聚类算法的示意图,上方是显示的是 AGNES 算法的步骤,下方是 DIANA 算法的步骤。这两种方法没有优劣之分,只是在实际应用的时候要根据数据特点及想要的簇的个数,来考虑是自底而上更快还是自顶而下更快。

    密度聚类算法示意
    图 3  密度聚类算法示意

    4. 基于网格的聚类方法

    基于网格的聚类方法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值,如图 4 所示。

    基于网格的聚类算法示意
    图 4  基于网格的聚类算法示意

    基于网格的聚类方法的主要优点是处理速度快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。这类算法的缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界。另外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。

    5. 基于模型的聚类方法

    基于模型的聚类方法是试图优化给定的数据和某些数学模型之间的适应性的。该方法给每一个簇假定了一个模型,然后寻找数据对给定模型的最佳拟合。假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数。这种方法的基本原理就是假定目标数据集是由一系列潜在的概率分布所决定的。

    图 5 对基于划分的聚类方法和基于模型的聚类方法进行了对比。左侧给出的结果是基于距离的聚类方法,核心原则就是将距离近的点聚在一起。右侧给出的基于概率分布模型的聚类方法,这里采用的概率分布模型是有一定弧度的椭圆。

    图 5 中标出了两个实心的点,这两点的距离很近,在基于距离的聚类方法中,它们聚在一个簇中,但基于概率分布模型的聚类方法则将它们分在不同的簇中,这是为了满足特定的概率分布模型。

    聚类方法对比示意
    图 5  聚类方法对比示意

    在基于模型的聚类方法中,簇的数目是基于标准的统计数字自动决定的,噪声或孤立点也是通过统计数字来分析的。基于模型的聚类方法试图优化给定的数据和某些数据模型之间的适应性。

    推荐学习目录:54.聚类分析简介
    55.k-means聚类算法

    展开全文
  • 分类方法中样本类别不均衡问题

    千次阅读 2017-11-29 20:45:51
    一、前言 大部分的分类学习方法都存在一个基本的假设,训练集中不同类别的训练样本数目差不多。如果不同类别的样本数目差距很大,比如正类样本有98个,而负类样本只有2个...欠抽样,是减少分类中数目较多的类别数量

    一、前言

    大部分的分类学习方法都存在一个基本的假设,训练集中不同类别的训练样本数目差不多。如果不同类别的样本数目差距很大,比如正类样本有98个,而负类样本只有2个,这种情况下学习出来的分类器只要一直返回正类的预测结果,那很轻易的就能达到百分之九十八的正确率,但实际上这样的模型并没有什么作用。

    二、解决方法

    1、欠抽样(under sampling)

    欠抽样,是指减少分类中数目较多的类别数量,来实现样本均衡。最直接的方法就是随机的去掉一些多数类中的样本,但这样可能会丢失一些重要的信息。

    比较有代表的欠抽样算法是EasyEnsemble,利用集成学习机制,将多数类中的样本划分为若干个集合供不同的学习器使用,表面看来每个学习器都进行了欠抽样,但整体看来却不会丢失重要信息。

    2、过抽样(over sampling)

    过抽样,是指增加分类中数目较少的类别数量,来实现样本均衡。最直接的方法就是随机的复制一些少数类中的样本,但这样可能会导致严重的过拟合。

    比较有代表性的过抽样算法是SMOTE,通过对训练集里的少数类样本进行差值来产生额外的记录。

    3、权重惩罚

    权重惩罚,是指对不同的类别样本赋予不同的权重,比如数量较少的类别拥有更大的权重,再进行建模。


    此外还有一些其他的方法,就不一一列举了。

    展开全文
  • TensorFlow目标检测API中这些损失(loss)代表含义是什么? RPN(Region Proposal Network)区域候选网络损失: 1.Losses/Loss/RPNLoss/localization_loss:RPN的本地化损失或边界框回归器的损失 2.Losses/Loss/...

    TensorFlow目标检测API中这些损失(loss)代表含义是什么?

    RPN(Region Proposal Network)区域候选网络损失:

    1. Losses/Loss/RPNLoss/localization_loss:RPN的本地化损失或边界框回归器的损失

    2. Losses/Loss/RPNLoss/objectness_loss:分类器的损失,分类器是对边界框是感兴趣的对象还是背景进行分类

    最终分类损失:

    3. Losses/Loss/BoxClassifierLoss/classification_loss:将检测到的对象分类为各种类别(猫,狗,飞机等)的损失

    4. Losses/Loss/BoxClassifierLoss/localization_loss:本地化损失或边界框回归器的损失

    5. Losses/TotalLoss:总损失

    6. Losses/clone_loss:仅在多个GPU上训练时才有意义,TensorFlow将创建模型的克隆以在每个GPU上训练并报告每个克隆的损失。如果您在单个GPU / CPU上训练模型,那么您将看到clone_lossTotalLoss相同。

    关注【OpenCV与AI深度学习】获得更多学习资讯

    扫描下面二维码即可关注

     

    展开全文
  • 使用sklearn来处理类别数据

    万次阅读 2018-03-06 22:54:27
    有序特征的是类别的值是有序的或者是可以排序的,例如,衣服的尺码S、M、X、XL、XXL...就是属于有序特征。再例如,衣服的颜色,黑色、蓝色、白色、黄色...这些就属于标称特征。一、有序特征的映射我们可以将有序...

    在处理真实的数据集的时候,我们经常会遇见一个或多个的类别数据的特征。类别数据可以被分为标称特征(nominal feature)和有序特征(ordinal feature)。有序特征指的是类别的值是有序的或者是可以排序的,例如,衣服的尺码S、M、X、XL、XXL...就是属于有序特征。再例如,衣服的颜色,黑色、蓝色、白色、黄色...这些就属于标称特征。

    一、有序特征的映射

    我们可以将有序特征装换成为整数,整数包含一定的顺序。没有一个合适的方法可以自动将尺寸特征转换成为正确的顺序,所以我们需要手动来指定相应的映射关系。例如,S:1,M:2,X:3,我们可以利用pandas的map方法来实现。

    import pandas as pd
    
    if __name__ == "__main__":
        #定义衣服尺寸的映射关系
        size_mapping = {"S":1,"M":2,"X":3,"XL":4}
        #定义一个DataFrame数据
        data = pd.DataFrame([
            ["green","S",100],
            ["blue", "M", 110],
            ["red", "X", 120],
            ["black", "XL", 130]
        ])
        #设置列名
        data.columns = ["color","size","price"]
        #对size列的类别数据进行映射
        data["size"] = data["size"].map(size_mapping)
        print(data)

    二、类标的编码

    许多的机器学习算法都要求将类标换成整数值来进行处理。对于类标进行编码与之前对于有序特征的映射有所不同,类标并不要求是有序的,对于特定的字符串类标赋予哪个整数值给它对于我们来说并不重要,所以在对于类标进行编码的时候我们可以使用枚举的方式从0开始设定类标。

    import pandas as pd
    import numpy as np
    
    if __name__ == "__main__":
        # 定义一个DataFrame数据
        data = pd.DataFrame([
            ["green", "S", 100,"label1"],
            ["blue", "M", 110,"label2"],
            ["red", "X", 120,"label3"],
            ["black", "XL", 130,"label4"]
        ])
        # 设置列名
        data.columns = ["color", "size", "price","label"]
        #通过枚举获取类标与整数之间的映射关系
        label_mapping = {label:idx for idx,label in enumerate(np.unique(data["label"]))}
        print(label_mapping)
        #对label列进行映射
        data["label"] = data["label"].map(label_mapping)
        print(data)
    

    通过下面的方法可以将整数类标还原为字符串

        inv_label_mapping = {v:k for k,v in label_mapping.items()}
        data["label"] = data["label"].map(inv_label_mapping)
        print(data)

    还可以通过sklearn的LabelEncoder类来实现类标的编码

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import LabelEncoder
    
    if __name__ == "__main__":
        # 定义一个DataFrame数据
        data = pd.DataFrame([
            ["green", "S", 100,"label1"],
            ["blue", "M", 110,"label2"],
            ["red", "X", 120,"label3"],
            ["black", "XL", 130,"label4"]
        ])
        # 设置列名
        data.columns = ["color", "size", "price","label"]
        class_label = LabelEncoder()
        data["label"] = class_label.fit_transform(data["label"].values)
        print(data)
    

    通过sklearn的inverse_transform方法可以将整数类标还原为原始的字符串

        data["label"] = class_label.inverse_transform(data["label"])
        print(data)

    三、标称特征上的独热编码(one-hot encoding)

    我们对上面衣服的颜色特征进行编码,将颜色映射为{"green":0,"blue":1,"red":2,"black":3}。看起来这样映射好像没什么问题,真的没有问题吗?实则不然,我们这样映射实际上给颜色强加了一个大小关系,即black>red>blue>green,实际上颜色是不存在这种关系的,很显然结果肯定也不是最优的。这时,我们可以通过独热编码(one-hot encoding)来解决这一类问题。独热编码是通过创建一个新的虚拟特征,虚拟特征的每一列各代表标称数据的一个值。例如,颜色一共有四个取值green、blue、red、black,独热编码是通过四位二进制来表示,如果是green就表示为[1,0,0,0],对应的颜色是[green,blue,red,black],如果属于哪一种颜色,则取值为1,否则为0。

    使用sklearn的OneHotEncoder实现OneHot编码

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import LabelEncoder
    from sklearn.preprocessing import OneHotEncoder
    
    if __name__ == "__main__":
        # 定义一个DataFrame数据
        data = pd.DataFrame([
            ["green", "S", 100, "label1"],
            ["blue", "M", 110, "label2"],
            ["red", "X", 120, "label3"],
            ["black", "XL", 130, "label4"]
        ])
        # 设置列名
        data.columns = ["color", "size", "price", "label"]
        X = data[["color", "price"]].values
        #通过类标编码将颜色装换成为整数
        color_label = LabelEncoder()
        X[:,0] = color_label.fit_transform(X[:,0])
        #设置颜色列使用oneHot编码
        one_hot = OneHotEncoder(categorical_features=[0])
        print(one_hot.fit_transform(X).toarray())

    注意:在使用OneHotEncoder进行OneHot编码的时候,需要先将字符串转换成为整数之后才能进行OneHot编码,不然会报错。

    使用pandas来实现oneHot编码

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import LabelEncoder
    from sklearn.preprocessing import OneHotEncoder
    
    if __name__ == "__main__":
        # 定义一个DataFrame数据
        data = pd.DataFrame([
            ["green", "S", 100, "label1"],
            ["blue", "M", 110, "label2"],
            ["red", "X", 120, "label3"],
            ["black", "XL", 130, "label4"]
        ])
        # 设置列名
        data.columns = ["color", "size", "price", "label"]
        X = data[["color", "price"]].values
        #pandas的get_dummies方法只对字符串列进行转换,其他的列保持不变
        print(pd.get_dummies(data[["color","price"]]))

    展开全文
  • 分类中解决类别不平衡问题

    万次阅读 多人点赞 2018-05-11 22:19:31
    1.什么是类别不平衡问题 如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰。例如有998个反例,但是正例只有2个,那么学习方法只需要返回一个永远将新样本预测为反例的学习...
  • SELinux策略语言--客体类别和许可

    千次阅读 2016-10-15 14:29:43
    1. 简介 SELinux策略语言主要描述policy.conf的相关...2.1 SELinux中客体类别的用途 客体类别及其许可是SELinux中访问控制的基础,客体类别代表资源的范畴,如文件和套接字,许可代表对这些资源的访问权限,如读或发
  • 返回结果的HTTP状态码分别代表什么意思? 本篇博客总结自《图解HTTP》,内容没有复制粘贴,纯手打(也为了自己记的更牢)???? 文章目录返回结果的HTTP状态码分别代表什么意思?状态码类别2xx成功200 OK204 No ...
  • [深度学习技巧]·数据类别不平衡问题处理

    千次阅读 多人点赞 2019-03-11 14:03:39
    1.什么是类别不平衡问题 如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰。例如有998个反例,但是正例只有2个,那么学习方法只需要返回一个永远将新样本预测为反例的学习...
  • java.library.path到底指什么

    万次阅读 2018-07-24 18:10:17
    java.library.path到底指什么? 这个就是.bashrc中的LD_LIBRARY_PATH 设为 export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
  • 类别样本不平衡问题

    千次阅读 2017-04-12 23:37:47
    类别不平衡就是分类任务中不同类别的训练样例数目差别很大的情况。下面以这样的一种情况作为假设实例,假定正类样例较少,反类样例较多。 一半对于样本平衡的二类分类任务,事实上是用预测出的y值与一个阈值进行...
  • 均值平方差(Mean Squared Error,MSE),也称“均方误差”,在神经网络中主要是表达预测值和真实值之间的差异,在数理统计中,均方误差是参数估计值与参数真值之差平方的预期值,主要用于回归问题。 公式如下:...
  • 类别不平衡(class-imbalance),是分类任务中不同类别的训练样例数目差别很大的情况(例如,训练集正类样例10个,反类样例90个),本文假设正类样例较少,反类样例较多。 现有解决方案大体分为三类,如下文所示。...
  • 多分类学习、类别不平衡

    千次阅读 2017-10-27 21:11:09
    多分类学习、类别不平衡
  • 其中高维类别数据是数据挖掘算法(比如神经网络、线性or逻辑回归、SVM)最具挑战性的数据类型。事实上,在一些像决策树或者一些规则归纳的学习算法中,对类别数据并不需要额外的处理。但是一些回归算法却需要将每一...
  • 不平衡学习是机器学习问题的一个重要子域,其主要关注于如何从类别分布不均衡的数据中学习数据的模式。在这篇文章中我们主要关注不平衡分类问题,特别地,我们主要关注类别极端不平衡...
  • 在LGBM的文档中,可以看到有两个参数来处理类别不平衡,分别是is_unbalance和scale_pos_weight 。 在上图中的介绍中,这2个参数只能选其一,不能同时选。这说明了什么呢?这2个参数肯定是起到了相同的作用。这2个...
  • 分类中常见的类别不平衡问题解决方法

    万次阅读 多人点赞 2017-08-29 11:01:32
    常见的类别不平衡问题解决方法 通常的分类学习方法中都有一个共同的假设,即不同类别的训练样例数目相同。如果不同类别的训练样例数目稍有差别,通常对分类影响不大,但是若差别很大,则会对学习造成影响,测试结果...
  • 类别型特征(Categorical Feature)是反映(事物)类别的数据,是离散数据,其数值个数(分类属性)有限(但可能很多),比如性别(男、女)、血型(A、B、AB、O)等只在有限选项内取值的特征。类别型特征原始输入...
  • CT影像中的窗宽和窗位指什么

    万次阅读 2015-03-20 15:11:34
    类别 CT 值 (HU) 水 0 ± 10 脑脊液 3-8 血浆 3-14 水肿 7-17 脑白质 25-32 ...
  • 测试输入框常用的特殊字符类别

    千次阅读 2018-07-16 16:17:06
    1、测试输入框常用特殊字符类别 键盘上能输入的特殊字符  空格  货币符号:¥,$等  数学符号:=、不等于,求和等  非英文字母语言符号:a等汉语拼音  中文标点符号:,。、()等  特殊汉字:囫囵等 ...
  • 解决样本类别分布不均衡的问题

    千次阅读 2018-04-12 16:12:21
    3.4 解决样本类别分布不均衡的问题转载:http://www.dataivy.cn/blog/3-4-%E8%A7%A3%E5%86%B3%E6%A0%B7%E6%9C%AC%E7%B1%BB%E5%88%AB%E5%88%86%E5%B8%83%E4%B8%8D%E5%9D%87%E8%A1%A1%E7%9A%84%E9%97%AE%E9%A2%98/说明...
  • 统一社会信用代码 按照《国务院关于批转发展改革委等部门法人和其他组织统一社会信用代码制度建设总体方案的通知》(国发〔2015〕33号)规定,由赋码主管部门给每一个法人单位和其他组织颁发的在全国范围内唯一的...
  • 欢迎大家来到图像分类专栏,类别不平衡时是很常见的问题,本文介绍了类别不平衡图像分类算法的发展现状,供大家参考学习。作者&编辑 | 郭冰洋 1 简介小伙伴们在利用...
  • 很熟悉了这里就没源码介绍,感兴趣的自行看源码),下面理解仅代表个人观点,若有错还请大家指教,一起学习交流,同时这里最大的贡献就是对源码的大体框架进行了一个摸索,对其中很多细节也欢迎大家交流学习!...
  • 什么是一致性Hash算法?

    万次阅读 多人点赞 2018-03-13 21:15:32
    最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我有没有相应的学习资料推荐,当时上班,没时间回复,晚上回去了就忘了这件事,今天突然看到这个,加班为大家...
  • 带你发现新大陆!什么是图数据库以及简单入门!

    万次阅读 多人点赞 2018-01-17 21:16:24
    此时,我们还没有真正的了解到底什么是图数据库,但是我们已经可以领略到图数据库的威力了! 五、揭开图数据库的面纱 图数据库源起欧拉和图理论,也可称为面向/基于图的数据库,对应的英文是Graph Database。图...
  • 数值型数据是连续型数据,离散型数据表示不同类目。整数和浮点数是连续型数值数据中最常见也是最常使用的数值型数据类型。即使数值型数据可以直接输入到机器学习模型中,仍需要在建模前设计与场景、问题和领域相关...
  • 车型SUV、CRV和HRV、MPV是什么意思?

    千次阅读 2012-08-11 16:56:41
    这里主要是那些设计前卫、造型新颖的四轮驱动越野车。随着人们生活水平的提高,这种汽车不局限于越野,而且还广泛用于城市休闲生活等多种用途。实际上,现代概念的越野车与SUV已经相当混淆,如雪佛兰“开拓者”、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,844
精华内容 29,937
关键字:

代表类别指的是什么