后发习得数据 机器学习_机器学习初探小结

回顾近一周的学习,我对机器学习有了不一样的感受和理解。

人工智能,机器学习,深度学习等这些词汇在近几年非常热,人工智能更是被提到国家战略层面,机器学习作为人工智能的重要组成部分也开始大范围应用,比如人脸识别,智能推荐以及语音识别等等。那机器学习是如何做到这些的呢,首先我们需要了解下到底什么是机器学习。

1.机器学习的由来

自从人类进入信息时代以来,人们越来越重视对信息的收集以及分析,这些信息涉及到方方面面,尤其是进入移动互联网时代后,借助手机终端,数以万计的app,产生了海量的数据,通过分析这些数据,我们可以发现数据背后隐藏的逻辑,而这些逻辑恰好可以帮助我们预测未来不同样本数据所呈现的真实含义。

2.机器学习的目的

数据背后隐藏的逻辑正是机器学习所要找寻的,根据大量数据,习得某一种规律,然后根据规律去预测未来。

3.机器学习的分类

机器学习分为监督式学习以及非监督式学习。不管是哪一种,都需要大量的数据,而这些是数据我们通常会将其分为两种,一种是训练数据,一种是测试数据。

训练数据是用来优化某一个模型或者算法,能够准确展示出数据背后的含义。

测试数据是为了验证模型或者算法的准确性以及拟合性

对于监督式学习来讲,训练数据是有预期目标的,每一个数据都会有结果的标签值存在。

监督式学习分为两种,分类和回归。

使用监督式学习,首先需要清楚我们要解决的是分类问题还是回归问题。如果我们的目标值是可枚举的,标称值或者离散值,那就属于分类问题;如果目标值是连续型的数值,就属于回归问题。而这些目标值就是我们给数据打的标签值。

非监督式学习,训练数据是没有预期目标的,只是通过数据特征分析出哪些数据具有相似的属性,可以将他们划为一类,就是聚类。

4.机器学习的流程收集数据

准备输入数据 确保数据格式符合要求

分析输入数据 确保数据集中没有垃圾数据

训练算法

测试算法

使用算法

机器学习主要任务在训练算法和测试算法上。

5.机器学习的算法KNN算法

决策树

随机森林

贝叶斯

SVM

......

本篇主要讨论KNN算法

KNN(K-Nearest Neighbor),机器学习中最简单常用的模型算法之一。

核心思想:选取测试点相邻最近的K(K<=20)个点(通过欧式距离公式可以计算出两点之前的距离),在选取的k个点中通过投票选择最多点的标签值作为测试点的目标值输出。

使用KNN算法的具体步骤如下:将物体向量化,也叫特征工程。模型的输入一定是量化的数据,需要将现实物体进行量化,并且对于一些量化数据还要进行特征缩放处理,确保模型能够快速收敛。

标记物体标签。作为目标值输出,可以通过机器自动打标签,也可以手动人工处理

计算两点物体之间的距离或者相似性。一般使用欧式距离公式计算距离。

选择合适的K值。K的不同取值对算法的影响,可以通过决策边界看出。随着K值增加,决策边界会变得平滑,因而模型会比较稳定,但是准确性会降低,也就是会欠拟合。反之,如果k值取值较小时,会出现决策边界不平滑,跳跃性增大,导致模型稳定性降低,在一类数据中表现非常好,但在另一类数据中表现不好,这就是过拟合,因此,在K值的选择上,我们需要不断调试K的大小,调试模型效果,最终找到一个合适的k值。

如何找到合适的K值

交叉验证法,一般使用5折交叉验证,即我们将训练数据分成5份,分别提取第一个1/5,第二个1/5.....最后一个1/5的数据作为验证数据,总计进行五次验证,最后计算出5次的平均值作为某一个K值的结果,以此类推,我们可以获得不同k值的验证结果,进行比较后,就可以得出哪一个k值是最优的。

下面我们讨论下KNN算法的复杂度,了解KNN算法的适用范围

KNN算法的时间复杂度为O(N),N为样本的总个数,由此可知,当样本总数变得比较大时,KNN是无法做到实时预测结果的,因此这里会使用KDTree作为样本点距离数据的结构存储,这样就可以通过树的索引快速找到与测试点最近的K个节点。

因此 KNN比较适合应用在低维空间,预测时候复杂度高,对于大数据需要一定的处理。

以上就是我对于本次特训营一周的机器学习的理解,请指正!

你可能感兴趣的:(后发习得数据,机器学习)