1、机器学习简介


1、机器学习简介

1.1、排名前十数据挖掘算法

         机器学习横跨计算机科学、工程技术和统计学等多个学科,需要多学科的专业知识。

 

十大机器学习算法:

C4.5决策树

K-均值(K-mean)

支持向量机(SVM)

Apriori

最大期望算法(EM)

PageRank算法

AdaBoost算法

K-近邻算法(kNN)

朴素贝叶斯分类(NB)

分类回归树(CART)

 

1.2、监督学习与非监督学习

监督学习:需要用户知道目标值,简单地说就是知道在数据中寻找什么。

无监督学习:无需知道用户搜寻的目标,只需要从算法中得到这些数据的共同特征。

 

监督学习:

1)、分类:按特性进行分类;

2)、回归:预测数值型数据;

 

无监督学习:

1)、聚类:将数据集合分成由类似的对象组成的多个类的过程称为聚类;

2)、密度估计:寻找描述数据统计值的过程

 

 

分类、回归、聚类、降维、推荐

 

1.3、开发机器学习应用程序的步骤

开发机器学习算法一般流程,首先得有训练数据,将这些数据通过机器学习算法进行处理,这个过程是训练;处理的结果被我们用来对新的数据进行预测,这个结果叫模型;对新数据进行预测的过程在机器学习中叫预测。

1、机器学习简介_第1张图片


1、机器学习简介_第2张图片

 

1)、收集数据

(如:爬虫)

2)、准备输入数据

(一些算法要求目标变量和特征值是字符串类型,而另一些算法可能要求是整数类型)

3)、分析输入数据

(这一步的主要作用是确保数据集中没有垃圾数据。通过一维、二维或三维图形展示也是不错的方法,然而大多数时候我们得到的特征值都不会低于三个,无法一次图形化展示所有特征)

4)、训练数据

(机器学习算法从这一步才真正开始学习,4与5步是机器学习算法的核心。如果使用无监督学习算法,由于不存在目标变量值,不需要进行训练数据,与算法相关的内容都集中在第5步)

5)、测试数据

(为了评估算法,必须测试算法的效果。对于监督学习,必须已知评估算法的目标变量值;对于无监督学习,也必须用其他的评测手段来检验算法的成功率)

6)、使用算法

(将算法转换为应用程序,执行实际的任务,以检验上述步骤在实际环境中是否正常工作)

 

特征值分为数值型和标称型

数值型是特征值得取值范围是无穷的;

标称值是特征值的取值范围是有穷个不通知,值之间无序

 

1.4、机器学习3要素

模型、策略、算法

1、机器学习简介_第3张图片

模型:通常分为决策函数或条件概率分布

 

1.5、机器学习若干概念

1.5.1、交叉验证:将给定的数据集切分成训练集合测试集

                            训练集比例要足够多,一般大于总的数据集的一半

                            训练集和测试集要均匀抽样

1)、简单交叉验证:

简单交叉验证的方法是这样的,首先随机的将给定的数据分为两部分,一部分用于训练集,另一部分作为测试集(例如,70%的数据集作为训练集,剩下的30%数据集作为测试集),然后用训练集在各个不同条件下(不同的参数,不同的参数个数)训练模型,从而得到不同的模型,然后用测试集估计各个模型的测试误差,选出测试误差最小的模型。

 

2)、K折交叉验证:

     K折交叉验证就是把样本数据随机地分为K个互不相交的大小相同的子集,每个子集均作一次测试集,剩余的作为训练集,重复K次,最后把K次的平均测试误差率作为最终的结果。通常情况下为了提高精度,还需要做多次K折交叉验证。10折交叉验证是K折交叉验证的特殊情况。

 1、机器学习简介_第4张图片

3)、留一交叉验证:

K折交叉验证的特殊情况是K=N,N为数据集的样本总数。称为留一交叉验证。意思是每个样本单独作一次测试集,剩余的作为训练集。留一交叉验证往往在数据缺乏的情况下使用。

 

1.5.2、泛化能力

泛化能力指由学习方法得到的模型对未知数据的预测能力。

概括地说,所谓泛化能力(generalization ability)是指机器学习算法对新样本的适应能力。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集(训练数据集)以外的数据,经过训练的算法也能给出合适的输出,该能力称为泛化能力。

通常希望经训练样本训练的模型具有较强的泛化能力,也就是对新输入数据给出合理预测结果的能力。算法的性能主要用它的泛化能力来衡量

1.5.3、过拟合

1、机器学习简介_第5张图片

 

1.5、Python实现机器学习算法

选择Python语言作为实现机器学习算法的编程语言:

1)、Python语法清晰、易于理解;

2)、易于操作纯文本文件、丰富的函数库(尤其是矩阵操作);

3)、使用广泛,存有大量开发文档,活跃的开发者社区;

 

SciPy和NumPy等许多科学函数库都实现了向量和矩阵操作。

Python的科学工具可以与绘图工具Matplotlib协同工作。Matplotlib可以绘制2D、3D图形,也可以处理科学研究中经常使用的图形。

 


你可能感兴趣的:(1机器学习简介)