机器学习实战

最近的闲暇时间越来越少,每周至少要运行出来一个经典的机器学习算法,而且每两周要读懂一篇外文文献并在周六汇报,而且小编自认代码能力不足,所以很少写作了。因此,就在这里发表一些自己的每周工作,给自己的生活做一些总结。

小编的专业是深度学习,也算是机器学习的一个重要分支了,所以必须参透机器学习的种种规则定义。今天小编主要看了机器学习实战这本书的前两章,在这里做一个简单的总结。

机器学习的真实含义:利用计算机来彰显数据背后的意义。简单来说,机器学习就是把无序的数据转换为有用的信息。

有监督学习(supervised learning)与无监督学习(unsupervised learning)的区别在于输入的样本集是否有标签。

分类和回归属于有监督学习。分类,顾名思义就是将输入的样本按类别进行划分,它是机器学习的主要任务;回归主要用于预测数值型数据,比如数据拟合曲线(通过给定点的最优拟合曲线)。之所以两者属于监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。

聚类属于无监督学习 。聚类是将数据集合分成由类似的对象组成的多个类的过程。

开发机器学习应用程序的步骤:①收集数据。为节省时间,可使用公开的数据源;②准备输入数据。得到数据之后,还必须保证数据格式是否符合要求;③分析输入数据。查看是否有异常数据,确保数据集无垃圾数据(若信任数据源,可跳过此步骤);④训练算法。机器学习算法从这一步开始真正的学习;⑤测试算法。检验算法成功率,若不满意结果跳回第四步;⑥使用算法。将机器学习算法转换为应用程序,执行实际任务。

注:第四步和第五步是机器学习算法的核心。

机器学习算法可由多种语言实现,在此主要讲python。小编在自己电脑上安装了两个版本的python,因为大家都了解2.X和3.X的语法在某些地方稍有不同。

python语言的优势在于①语法清晰;②易于操作纯文本文件;③使用广泛,存在大量的开发文档。唯一的缺点就是性能问题。

机器学习算法大量的使用python里的Numpy函数库,所以要提前安好,可利用pip指令进行安装(小编就是这么做的)。在python的Scripts文件夹下打开命令窗口并输入:pip list,可以看到安装的python模块。

在Shell脚本下输入以下命令,出现下面的输出结果说明安装正确。

k-近邻算法(kNN)

优点:精度高、对异常值不敏感、无数据输入假定

缺点:计算复杂度高、空间复杂度高

适用数据范围:数值型和标称型

原理:存在一个样本数据集,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据的特征进行对比,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选样本数据集中前k个相似的数据,这就是k近邻算法k的出处。

伪代码:

对未知类别属性的数据集中的每个点依次执行以下操作:

(1)计算已知类别数据集中的点与当前点之间的距离;

(2)按照距离递增次序排序;

(3)选取与当前点距离最小的k个点;

(4)确定前k个点所在类别出现概率;

(5)返回前k个出现频率最高的类别作为当前点的预测分类。

样本点分布情况:

①每周消费的冰淇淋公升数(纵轴)与玩视频所耗时间百分比(横轴)数据散点图

②玩视频所耗时间百分比(纵轴)与每年获取的飞行常客里程数(横轴)数据散点图

测试结果:错误率0.064

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180312G0ZCZ100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券