机器学习

说明:人工智能范畴最广,机器学习和深度学习范畴逐步缩小,其实机器学习与深度学习可以看作人工智能的内部模型提炼过程人工智能则是对外部的智能反应

                                 

人工智能

人工智能(Artificial Intelligence),学术定义为用于研究,模拟及扩展人的智能应用科学;AI在计算机领域研究涉及机器人,语言识别,图像识别,自然语言处理等。AI的研究会横跨多门学科,如计算机,数学,生物,语言,声音,视觉甚至心理学和哲学。其中AI的核心是做到感知,推断,行动及根据经验值进行调整,即类似人类的智慧体智能学习提升。

深度学习

深度学习则泛指深度神经网络学习,如卷积神经网络(Convolutional Neural Nets,CNN),把普通神经网络从3-4层升华到8-10层从而获取更精准模型,其应用如图像视频识别等。深度学习借助因互联网而诞生的大数据,及近些年发展的强大运算能力(图形处理GPU)而大放光彩,甚至推动引爆了新一代的人工智能。

机器学习

机器学习的学究的定义为“计算机程序如何随着经验积累自动提高性能”,经典英文定义为“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”,即“对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习”, 通俗点说既是让机器来模拟人类来学习新的知识与技能,重点不是通过某精妙算法而达成,而是让程序去通过学习发现提高,举一反三, 正所谓授之以鱼不如授之以渔。

机器学习------有监督学习与无监督学习(半监督学习)

(监督学习是在家长及老师的“监督”下做告知正确的事,无监督学习就是自己去探索,发现,适应社会。)

监督学习,通常对具有标记分类的训练样本特征进行学习,标记即已经知道其对应正确分类答案;而学习则本质是找到特征与标签(正确答案)之间的关系(函数),从而当训练结束,输入无标签的数据时,可以利用已经找出的关系方法进行分析得出数据标签。监督学习类似我们在学校的学习,通常的题目都会有“正确答案”,以便于我们每学期学习结束(训练),参加未知的考试作为检验。

监督机器学习方法有:人工神经网络,决策树,传统贝叶斯分类器,支撑向量机(SVM)等。

无监督学习(Unsupervised Learning),无监督学习通常学习数据只有特征向量,没有标签(答案),学习模型通过学习特征向量发现其内部规律与性质,从而把数据分组聚类(Clustering)。无监督学习更类似我们的真实世界,去探索发现一些规律及分类。

无监督学习方法有: K-Means, 层次化聚类(Hierarchical Clustering),社交网络分析,一些数据挖掘算法等。

ML算法选型

                         

有监督学习算法比较

KNN
调节:n_neighbors
优点:模型很容易解释。
缺点:
局限:仅适用于小数据集。
建议:预处理数据(将特征缩放到同一范围)能提高准确率。

线性模型
调节alpha或者C
优点:对维度非常高的稀疏数据(如文本数据)表现好。训练和预测速度快。适用于非常大的数据集。
缺点:泛化能力较差。

朴素贝叶斯模型
调节:alpha
优点:对维度非常高的稀疏数据(如文本数据)表现好。训练和预测速度快。适用于非常大的数据集。
缺点:泛化能力比线性分类器较差。
局限:仅适用于分类。

决策树
调节:max_features, max_depth
优点:不需要对特征进行预处理(如放缩),不需要反复调节参数
缺点:容易过拟合,泛化能力差。数模型不能在训练数据范围之外进行预测。

random forest
调节:n_estimators, max_features, max_depth
优点:不需要对特征进行预处理(如放缩),不需要反复调节参数。算法鲁棒性好。
缺点:对维度非常高的稀疏数据(如文本数据)表现不好。需要更大内存,训练和预测速度较慢。

梯度提升树
调节:n_estimators, learning_rate。learning_rate控制每棵树对前一棵树错误的纠正强度。
优点:不需要对特征进行预处理(如放缩),预测时间比random forest较短,精度比random forest高。
缺点:对维度非常高的稀疏数据(如文本数据)表现不好。训练速度较慢。需要仔细调参,算法鲁棒性差。
建议:先尝试random forest,再尝试梯度提升树

svm
调节:核类型,gamma(等于核宽度的倒数),C。gamma/C越大对应越复杂的模型。
优点:适用于低维/高维数据。决策边界可以为非线性。
缺点:预处理数据(需要将特征缩放到同一范围)与调参都需要非常小心(对参数设置非常敏感)。模型很难检查,很难被解释。对大数据集,运行时间较长且内存需求大。

MLP
调节:hidden_layer_sizes(隐含层个数,以及每个层中单元个数(一般接近于输入特征个数)), activation(激活函数,默认为relu),solver(优化方法,默认为adam), alpha(正则化强度)。
优点:在足够计算时间和数据情况下,性能更优秀。
缺点:预处理数据(需要将特征缩放到同一范围,均值为0, 方差为1)与调参都需要非常小心。模型很难检查,很难被解释。训练时间很长。
建议:adam对数据缩放相当敏感,lbfgs算法鲁棒性好。调参步骤:(1) 创建过拟合网络;(2) 缩小网络;(3)增加正则项去提高泛化能力。

总结:
C, gamma越小对应越简单模型,泛化能力更强。
alpha越大对应越简单模型,泛化能力更强。

无监督学习算法比较

应用算法之前,都执行数据缩放处理。
kmeans
调节:n_clusters。
优点:适用于大数据集。速度较快。
缺点:需要给定聚类个数;k均值仅能找到相对简单的形状。依赖于初始化。
应用:矢量化,用簇中心来表示每个数据点。类比于pca

凝聚聚类
调节:n_clusters。
优点:适用于大数据集。速度较快。
缺点:需要给定聚类个数;仅能找到相对简单的形状。不能对新数据做出预测。
应用:找出簇中心个数

DBSCAN 带噪声的基于密度的空间聚类应用
调节:eps(定义了点与点之间接近的含义),min_samples。
优点:适用于较大数据集。不需要给定聚类个数;能找到相对复杂的形状。
缺点:不能对新数据做出预测。速度较慢。
不确定性:有时会生成大小差别很大的簇。

模型验证

评价泛化能力
train_test_split

k折交叉验证
调节 cv,用于指定分类器
cross_val_score
优点:比更train_test_split准确。
缺点:增加了计算成本。
应用:用于回归

分层k折交叉验证
避免某一个类别的数据都集中在某一个折中。导入sklearn.model_selection.StratifiedKFold
优点:比更train_test_split准确。
缺点:增加了计算成本。
应用:用于分类

打乱交叉验证
sklearn.model_selection.ShuffleSplit

分组交叉验证
比如将同一个人的数据放在一组
sklearn.model_selection.GroupKFold

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值