想成为数据科学家?你得是个博闻强识,又对新鲜事物保持好奇心的人。正因为如此,数据科学家会掌握几乎所有的常见算法,并精通其中一门,这样可以快速适应新领域的问题。
今天我们就来聊聊,每一位数据科技家都应该了解的10大机器学习算法。下面是关于普遍机器学习算法和快速资源的风暴之旅,准好了吗?烧脑挑战开始:
1. 主成分分析(PCA)/奇异值分解(SVD)
PCA是一种非监督学习,用来理解由向量组成的数据集的全局特性的方法。这里分析了数据点的协方差模型,用来了解哪些维度(大部分)/数据点(有时)更重要,即在它们自身之间具有高方差,但与其他变量时协方差较低。
这种思考模型主要用于考量具有最高特征值的特征向量。此外,SVD本质上也是一种计算有序成分的方法,但你不需要通过获取数据点的协方差矩阵来实现它。
这种算法通过获取已缩减维度的数据点,有助于解决多维度产生的冲击。
Libraries:
Introductory Tutorial:
2.1 最小二乘法和多项式拟合
还记得你在大学里学的数值分析编码吗?通过拟合直线和曲线得到一个方程。现在,你可以使用它们来适配机器学习中的曲线,用于非常小的低维数据集。对于大数据或多维度的数据集,你可能会需要过度拟合,所以不用费心。普通最小二乘法(OLS)具有封闭形式的解决方案,因此你不需要使用复杂的优化技术。
很明显,你可以使用这种算法拟合简单曲线/回归。
Libraries:
Introductory Tutorial:
2.2 约束性线性回归
最小二乘法可能会被数据中的离群点、假维度和噪声干扰。因此,我们需要用约束来减少数据集上拟合的线的方差。正确的方法是拟合一个权重可控的线性回归模型。模型可以用L1正则(LASSO)或L2正则(Ridge Regression)或二者混合(elastic回归)。经过正则处理后对均方损失进行优化。
使用这些算法拟合具有约束性的回归线,避免从模型中过度拟合和掩藏干扰维度。
Libraries:
Introductory Tutorial(s):
3. K-均值聚类
这是所有人都喜欢的非监督学习聚类算法。给定一组矢量形式的数据点,我们可以基于它们之间的距离生成数据点群。它是一种期望最大化的算法,反复地移动群组的中心,然后聚集每个群组中心点。此算法所采用的输入是生成群组的数量,并且它将尝试汇集群组的迭代次数。
从名称中就可以看出,你可以使用这种算法在数据集中创建K集群。
Library:
Introductory Tutorial(s):
4. 逻辑回归
逻辑回归是一种约束线性回归,它的结果进行了非线性变换(常用的是sigmoid函数,或者tanh也可以),因此把输出限制成了+/-类的输出(在sigmoid中是1和0)。
交叉熵损失函数(Cross-Entropy Loss)用梯度下降法(Gradient Descent)优化。对初学者来说,逻辑回归用于分类,而不是回归。你也可以把逻辑回归看作一层神经网络。逻辑回归通过使用梯度下降法或者L-BFGS算法优化。NLP自然语言处理者们通常把它称之为最大熵分类器。
使用LR来训练非常简单,却是十分强有力的分类器。
Library:
Introductory Tutorial(s):
5.SVM(支持向量机)
SVM(支持向量机)是线性模型,类似线性/逻辑回归。不同之处在于它们具有不同的基于边际损失函数(支持向量的推导是我所看到过的最美的数理成果之一,和特征值的计算可以媲美)。你可以使用诸如B-FGS甚至SGD等优化方法来优化损失函数。
SVMs的另一个创新是,在特征工程中kernel使用。如果你有很好的领域洞察力,你可以用更好的kernel来代替旧的RBF kernel,并从中受益。
SVMs独一无二的特性就是可以学习一个类别的分类器
SVMs可以用来训练分类器(甚至回归函数)。
Library:
Introductory Tutorial(s):
6. 前馈神经网络
这些基本上是多层逻辑回归分类器。许多层权重由非线性(SigMOID,TANH,Relu+SULTMax和cool new SELU)分隔。它另一个比较知名的名字是多层感知器。前馈神经网络作为自动编码器,可用于分类和非监督特征学习。