机器学习十大算法实现代码汇总(python)----线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、K邻近算法、K-均值算法、随机森林、降低维度算法、梯度增强算法

引入

本文为机器学习十大算法的汇总,本文仅介绍机器学习十大算法的一些基本概念,具体算法及python实现在附上的连接中,代码有参考网上的大佬,进行了大量的注释,有数据集的也将数据集放在了博文中,并附上了运行结果,希望对大家有用~~

一、线性回归 (Linear Regression)

线性回归(Linear Regression) 可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。

这种算法最常用的技术是最小二乘法(Least of squares)。这个方法计算出最佳拟合线,以使得与直线上每个数据点的垂直距离最小。总距离是所有数据点的垂直距离的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。

二、逻辑回归 (Logistic Regression)

逻辑回归(Logistic regression) 与线性回归类似,但它是用于输出为二进制的情况(即,当结果只能有两个可能的值)。一般用于需要明确输出的场景,如某些事件的发生(预测是否会发生降雨)。通常,逻辑回归使用某种函数将概率值压缩到某一特定范围。对最终输出的预测是一个非线性的 S 型函数,称为 logistic function, g()。

这个逻辑函数将中间结果值映射到结果变量 Y,其值范围从 0 到 1。然后,这些值可以解释为 Y 出现的概率。S 型逻辑函数的性质使得逻辑回归更适合用于分类任务。

三、决策树 (Decision Tree)

决策树(Decision tree) 是一种特殊的树结构,由一个决策图和可能的结果(例如成本和风险)组成,用来辅助决策。决策树仅有单一输出,通常该算法用于解决回归和分类问题。

机器学习中,决策树是一个预测模型,树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象的值。在每个节点上,我们根据可用的特征询问有关数据的问题。左右分支代表可能的答案。最终节点(即叶节点)对应于一个预测值。每个特征的重要性是通过自顶向下方法确定的。节点越高,其属性就越重要。

四、支持向量机算法 (Support Vector Machine,SVM)

**支持向量机(Support Vector Machine,SVM)**是一种用于分类问题的监督算法。SVM模型将实例表示为空间中的点,将使用一条直线(超平面)分隔数据点,且是两类数据间隔(边距:超平面与最近的类点之间的距离)最大。只通过几个支持向量就确定了超平面,说明它不在乎细枝末节,所以不容易过拟合,但不能确保一定不会过拟合。可以处理复杂的非线性问题。

五、K邻近算法(K-Nearest Neighbors,KNN)

K近邻算法通过在整个训练集中搜索 K个最相似的实例(欧氏距离最近的k个),并为所有这些K个实例分配一个公共输出变量,来对预测对象进行分类。属于有监督学习,是一种基于实例的学习,是局部近似和将所有计算推迟到分类之后的惰性学习。用最近的邻居(k)来预测未知数据点。

k 值是预测精度的一个关键因素,无论是分类还是回归,衡量邻居的权重都非常有用,较近邻居的权重比较远邻居的权重大。

六、K-均值算法(K-means)

K-均值是通过对数据集进行分类来聚类的,属于无监督学习,为聚类问题提供了一种解决方案。在数据集没有标注的情况下,便于对数据进行分群。而K-Means中的K即指将数据集分成K个子集合。算法把 n 个点(可以是样本的一次观察或一个实例)划分到 k 个集群(cluster),使得每个点都属于离他最近的均值(即聚类中心,centroid)对应的集群。重复上述过程一直持续到重心不改变。

七、朴素贝叶斯 (Naive Bayes)

朴素贝叶斯算法是一种有监督的分类算法,可以进行二分类,或者多分类。基于概率论的贝叶斯定理,应用非常广泛,从文本分类、垃圾邮件过滤器、医疗诊断等等。朴素贝叶斯适用于特征之间的相互独立的场景,例如利用花瓣的长度和宽度来预测花的类型。“朴素”的内涵可以理解为特征和特征之间独立性强。

八、随机森林 (Random Forest)

随机森林是一个高度灵活的机器学习方法,利用多个决策树对样本进行训练、分类并预测,主要应用于回归和分类场景。在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择(即引入随机特征选择)。

简单来说,随机森林就是对决策树的集成,但随机森林中决策树的分类特征是在所有特征中随机选择的。

随机森林中有许多的分类树。我们要将一个输入样本进行分类,我们需要将输入样本输入到每棵树中进行分类,森林中的每棵树都是独立的,学习器根据每棵树的预测结果来得出最终的结果,99.9%不相关的树做出的预测结果涵盖所有的情况,这些预测结果将会彼此抵消。

九、降低维度算法(Dimensionality Reduction)

通常情况下,在收集数据集时会有很多的特征,这代表着数据是高冗余的表示,但是对于某个工程来说其实可能并不需要那么多的特征。所以就需要给数据进行降维(Dimensionality Reduction)。降维可以简化数据,使数据集更易使用,降低时间开销,而且能减少一部分噪音的影响,使最后的效果变好。
目前,主要降维方法有:主成分分析法(Principal Component Analysis, PCA)、因子分析法(Factor Analysis)、独立成分分析(Independent Component Analysis, ICA)

十、梯度增强算法Gradient Boost和Adaboost算法

梯度增强算法(Gradient Boosting)使用多个弱算法来创建更强大的精确算法。它与使用单个估计量不同,而是使用多个估计量创建一个更稳定和更健壮的算法,梯度增强算法的特点是精度较高。梯度增强算法有几种:
XGBoost  — 使用线性和树算法
LightGBM  — 只使用基于树的算法
GBDT(Gradient Boosting Decision Tree)算法是集成算法中的一种,它的最基本分类器为CART二分类回归树,集成方式为梯度提升。

  • 随后更新
  • 7
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值