分类问题是生活中最常遇到的问题之一。普通人在作出选择以前,可能会犹豫不决,但对机器而言,则是惟一必选的问题。咱们能够经过算法生成模型去帮助咱们快速的作出选择,并且保证偏差最小。充足的样本,合适的算法能够透过表象的类别,进而挖掘其内在的联系、区别,找出最佳的的属性来区分每一个样本的类别。因此说学习和应用机器学习的算法,要求咱们必须很是了解数据实例,每一个样本数据有多少个特征,哪些特征是敏感的,特征分布如何。只有充分了解数据,才能选择最合适的算法。html
单身王女士常常逛某相亲网站,前先后后浏览了1000个男生,并给他们打标了,不喜欢、通常喜欢、很喜欢三个类别。该相亲网站的工程师,决定开发一个算法推荐模型,给王女士依次推荐很喜欢,通常喜欢的男生。并能够将这个算法模型应用到网站,吸引更多的单身青年注册使用,并能够找到本身喜欢的男/女友。算法
首先将离线数据导入到odps表中。咱们主要介绍使用散点图和箱线图来直观的观测分析数据。而后根据上面的具体案例来学会如何看,理解这个图形。数据选自《机器学习实战》一书。机器学习
详情学习
1,反对角线上的三个方形,在方形左上角代表三个特征的名称。并且这个三个图像与其余图形不相同,横纵坐标都是一个特征,则对角直线就表明该特征在不一样类别下分布密度。好比Play这个方形,咱们发现黄色部分集中在下方,蓝色部分主要分布在中间,绿色主要分布在中上方。测试
2,除了反对角线上的三个方形,其余方形则是反映了两两特征之间的分布状况。好比第一排第一列(1,1),横坐标为play,纵坐标为mileage。从这个方形上能够直观观测出不一样颜色的散点集中分布在不一样区域。网站
3,关于反对角线对称的两个方形,则是两个特征交换纵横坐标的散点图。人工智能
4,在整个散点图的下方,能够勾选你但愿对比的特征。spa
1,ice_cream特征对分类不敏感。从图(1,2),(2,2)咱们能够直观看出,ice_cream在全部类别中几乎都是均匀分布。3d
2,mileage,play 特征能够将类别明显的划分红三个区域。说明这两个特征绝大程度上决定了类别的划分。htm
在任意个方形内,拖拽一个方形区域,能够选出知足这些特征的样本,更加直观的观测,这些样本在不一样方形内的分布。如上图所示,咱们选中了图(3,3)内一个方形区域,能够看出这些样本在ice_cream特征下是均匀分布,在其余两个特征下,均可以经过一个超平面划分。
1,箱线图组件分两个tab分别显示箱线图和扰动点图,在左上角均可以选择观测不一样的特征。右侧显示该特征下,每一个类别的分布状况。
2,箱线图介绍,每一个类别的箱线图,从上到下一共有5条横线。
3,內限不是样本的最上限,外限也是不最下限,超过內限和外限的样本为异常样本。
4,结合扰动点图,咱们能够发现观测到异常样本的大体数量多少。
1,经过上面的图,咱们能够关注paly属性在不一样类别下的分布。对比ice_cream特征
咱们发现paly特征的属性值在不一样类别下有明显有倾向性分布。而ice_cream在不一样类别下分布几乎是同样的,这也验证了咱们经过散点图得出的结论。
如今回到咱们一开始遇到的问题。如何用算法帮助工程师为王女士推荐其余她能够喜欢的男生呢。其实这是一个简单的问题,就是把全部的男生分为三类,不喜欢,通常喜欢,很喜欢。对于一个没有标签的男生(x),咱们分出其最可能属于哪一个类别的几率(p)。
在这种状况下,咱们就选出这个男生属于类别A。如何计算这个几率,不一样算法有不一样的计算方法。好比K紧邻算法,选出离这个样本点最近的K个样本,经过属于A的样本个数除以K就能够得出属于A的几率。随机森林,则是经过投票的方式,票数多的类别就是样本最终划分的类别。
经过前面数据分析,咱们知道了数据的一些特性。
1,mileage数值比其余两个特征大不少,在计算特征间的距离时,所在权重就比较大。全部选择K近邻能够会形成较大偏差。
2,AdaBoost算法,随机森林以及逻辑回归算法均可以处理数值型数据,因此这三种算法咱们都会尝试,并评估者三个算法的准确率。
咱们可使用统计分析-全表统计观测数据是否有空值,以及一些方差等的统计信息。在本案例中我仅作缺失值检测。
咱们分别选择了三个分类算法,随机森林、AdaBoost、K近邻算法。分别作了训练,预测和算法评估。在下面咱们会经过测试评估来选择合适的方案。
经过上面的混淆矩阵,能够很直观的看出,在算法准确度层面,AdaBoost>随机森林>K近邻。也验证了咱们前面经过数据分析得出的结论,在某个特征的值过大时,K近邻算法容易出现较大的偏差。固然咱们能够经过归一化来处理这些特征值,只是这样作在服务测试时,输入的数据就必须是归一化的值而不是真实数据,在实际使用中会有一些麻烦。
模型的部署和测试参见【玩转人工智能—基于PAI的机器学习实战系列二】商品价格预测
AdaBoost之因此有如此好的效果,其功劳要归功于集成算法的提出和应用。集成算法经过组合多个分类器的结果,并赋予不一样的权重值,而得到了比任一个分类器都要好的结果。固然这也作也有必定风险,好比说有可能加深了分类器的过拟合问题。
在分类问题上,咱们最常遇到的问题就样本分布不均衡的问题。就是说正样本多与负样本,某个类别的样本多与其余类别的样本。这样的数据集在大部分分类器上都会存在问题,一般状况下,咱们能够经过欠抽样或者过抽样来解决这类问题,可是在实际操做中,咱们须要注意下,如何才能在尽量不影响实际真实性的状况下作到很好的抽样。
本文为云栖社区原创内容,未经容许不得转载。