分类问题概述
前面,我们已经讨论了关于数据预处理的一些细节。而在数据分析实战中,我们面对的一项重要工作,就是对数据进行分类。
举个例子,如果你拿到了一份来自电力部门的数据集,里面包含了一个城市的个人及企业每个月的用电数据,缴费数据等。我们就可以使用这份数据去对个人用户进行信用评估分类,调整不同类别用户的电卡授信额度,对高概率拖欠电费用户每月进行短信催缴提醒。我们也可以对企业用电进行分析,根据用电量和用电时段进行分类,然后做一些保障性供电的方案。这里面就涉及到大量的数据分类应用。
除此之外,像深度学习中会遇到的图像识别也是分类问题的应用。判断一张照片中的主体是猫还是狗?这都是典型的分类问题。生活中,像上面例子的情况还非常之多,几乎每个行业都会面临大量需要分类的问题。分类问题也是我们在数据分析中,遇到频率最高的问题。
分类的方法主要有
线性和非线性分类
支持向量机
决策树
随机森林
神经网络
程序如何进行一个简单分类?
在讨论各种分类方法前,我想先讨论一个可以帮助入门用户的问题,那就是程序如何进行一个简单的分类?
首先,我们回想一下人是如何在生活中完成事物分类的。例如区分房子和车?其实,当我们人在区分事物时,一般是抓住了一个或多个特征。例如,车有轮子、金属外壳、挡风玻璃等。所以,特征是对事物分类的关键要素。
当程序在进行分类是,它也是抓住了特征,只是这里的特征和我们所看到的特征有一些区别。一般情况下,我们看到的是图像,而程序看到的是数值。
如果我们想让程序来区分房子和车,最简单的方法就是先确定它们具有的共同特征。例如,物体都包含长度和高度。然后,我们让程序记录下一些数据(训练数据)。
为什么要聚类?
当我们拿到一些原始数据时,这些数据是没有任何规律可循的。聚类,就是发生数据之间内在联系的方法。举个形象一点的例子:动物园里有很多动物,在没有聚类的情况下,每一种动物都是单独的类别。如果我们统计每种动物特点,腿的数量、有无耳朵、皮毛颜色、有无尾巴等。最终,我们就可以使用聚类将所有的动物分成数个大类。除此之外,书籍聚类、文档聚类、房屋类型聚类等,都会使用到聚类算法。
聚类分析与分类的区别
有可能你会在分类和聚类之间疑惑。一般来讲,在一个机器学习任务或者数据分析实例中,我们会先采用聚类算法对数据进行处理。使用聚类算法对历史数据处理之后,就可以人为的给每一种类别打上标签。而这些存在标签的数据,就可以被应用到下一步的分类学习中。简而言之、在执行聚类之前,我们的数据没有任何类别可言。但在执行分类之前,我们应该已经有了类别,才能对新数据进行分类。
下面这张图,可能让你对分类和聚类理解的更加到位:
image.png
K-均值聚类是最常用的聚类方法之一。从它的名字来讲,K 代表最终将全部样本数据集和聚为 K 个类别。而「均值」代表在聚类的过程中,我们计算聚