监督学习算法的应用场景和优缺点

本文介绍了几种常见的监督学习算法,包括高斯朴素贝叶斯、决策树、KNN、AdaBoost、SVM、随机梯度下降分类器和Logistic回归。每种算法都有其特定的应用场景、优势和局限性,例如高斯朴素贝叶斯适用于处理连续数据,决策树模型易于理解,而SVM在解决小样本、非线性及高维模式识别问题上有优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自简书-刘开心_8a6c

记录一波监督学习算法的应用场景和优缺点。

高斯朴素贝叶斯

场景:该模型常用于性别分类,即通过一些测量的特征,包括身高、体重、脚的尺寸,判定一个人是男性还是女性。
优点:这个模型的优势是处理连续数据,特别当数据是高斯分布时,有一个很好的表现。处理连续数据数值问题的另一种常用技术是通过离散化连续数值的方法。通常,当训练样本数量较少或者是精确的分布已知时,通过概率分布的方法是一种更好的选择。在大量样本的情形下离散化的方法表现最优,因为大量的样本可以学习到数据的分布。
缺点:由于高斯朴素贝叶斯使用的是概率分布估计的方法,不合适在大数据集上应用,因为容易出现欠拟合,在数据分布不准确时或数据样本很大时,表现很差。

决策树

场景:百度到一个相亲用决策树的应用,每个节点是一个评判标准,最后决定是否要嫁/娶。
优点:决策过程接近人的思维习惯,模型容易理解。
**缺点:决策树学习方法的准确率不如其他模型,不支持在线学习,有新样本来的时候需要重建决策树,容易产生过拟合现象。(http://m.blog.csdn.net/article/details?id=47616255) **

KNN

场景:KNN的应用有分类未知案例的项目(摘自百度百科)。
优点:无需估计参数,简单,易于理解。特别适合于多分类问题(multi-modal,对象具有多个类别标签), KNN比SVM的表现要好(svm更适合二分类)。
缺点:当有偏斜类的情况下,由于算法只计算最近的k个样本,假设小样本总数小于k/2,即使都很近,也会分错。该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。

集成学习之AdaBoost

场景:人脸检测,AdaBoost以弱学习器作为基分类器,并且输入数据,使其通过权重向量进行加权,第一次迭代时所有数据等权重,在后续迭代中,前次迭代分错的数据权重会增大。
优点:它有错误调节能力,分类精度高;在Adaboost的框架下可以使用各种回归分类模型来构建弱学习器,非常灵活;作为简单的二元分类器时,构造简单,结果可理解;不容易发生过拟合。
缺点:对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

SVM

场景:进行文本的分类
优点:在解决小样本、非线性以及高维模式识别中表现出许多特有的优势,对于非线性的分类问题,可以通过核函数把原来低维的空间中线性不可分的问题映射到高维,变成线性可分的问题进而得以解决。同样,也可以采用SMO的方式,将分解的思维推向极致,用SVM来处理多分类的问题。
缺点:在处理数据上面的时间较慢,复杂度较高,在处理多分类的问题上面存在着不足,还需要在二分类的基础上自己构造多分类相关的算法,代价比较大。

随机梯度下降分类器 (SGDC)

场景:图片分类。
优点:普通的梯度下降算法在更新回归系数时要遍历整个数据集,是一种批处理方法,这样训练数据特别忙庞大时,可能出现收敛过程可能非常慢、不能保证找到全局最小值这样的问题。而随机梯度下降分类器能够更好地处理上述问题,更能避免进入局部极小值中。SGDC处理大规模问题表现比较好。
缺点:不太适合用于高精度问题,当处理高精度问题时它的表现很差。

Logistic回归

场景:主要用于危险因素探索(摘自百度百科)
优点:分类时计算量非常小,速度很快,易于理解和实现。他是一个单调上升的函数,具有良好的连续性,不存在不连续点
缺点:当特征空间很大时,逻辑回归的性能不是很好;容易欠拟合,一般准确度不太高;不能很好地处理大量多类特征或变量;对于非线性特征,需要进行转换;只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;

作者:刘开心_8a6c
链接:https://www.jianshu.com/p/20bffd53101a
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

### 不同有监督学习算法优缺点 #### 决策树 决策树是一种基于树形结构来进行预测模型构建的方法。该方法易于理解解释,对于数值型类别型的数据都能很好地处理。 优点: - 可读性强,容易理解并解释。 - 对于缺失值不敏感,在某些节点上可以根据其他路径继续进行判断[^1]。 缺点: - 容易过拟合训练数据,特别是在样本量较少的情况下。 - 当存在多个类别的离散属性时,可能会偏向那些具有更多取值级别的属性。 #### 支持向量机 (SVM) 支持向量机特别适合解决高维度空间中的分类问题,并且在面对线性非线性的边界划分方面表现出色。它通过寻找最优超平面来最大化不同类别之间的间隔距离。 优点: - 更适用于高维数据集、线性不可分或非线性可分的问题,如图像识别、文本分类等场景。 - 使用核技巧可以有效地映射到更高维度的空间从而找到更好的分离面。 缺点: - 训练时间较长,尤其是在大规模数据集上的表现更为明显。 - 参数调整较为复杂,比如选择合适的内核函数及其对应的参数设置。 #### 神经网络(含卷积神经网络) 神经网络由多层感知器组成,可以通过大量的隐藏层自动提取特征表示。特别是卷积神经网络(CNN),因其特殊的架构设计而擅长处理网格状拓扑结构的数据,例如图片声音信号。 优点: - 卷积神经网络具备表征学习的能力,能按照层次结构对输入信息实施平移不变分类操作[^5]。 - 隐含层内部采用卷积核参数共享机制以及层间连接稀疏特性,这有助于减少所需计算资源的同时保持良好的泛化性能。 缺点: - 构建有效的深层网络需要丰富的经验专业知识指导下的调参过程。 - 相较于传统的浅度模型而言,深度学习通常需要更多的标注样本来达到较好的效果[^3]。 ```python from sklearn import datasets, tree, svm import matplotlib.pyplot as plt # 加载鸢尾花数据集作为例子展示不同类型的学习器 iris = datasets.load_iris() X, y = iris.data[:, :2], iris.target # 创建三个不同的分类器实例 clf_dt = tree.DecisionTreeClassifier().fit(X, y) # 决策树 clf_svm = svm.SVC(kernel='linear').fit(X, y) # SVM # 这里省略了具体的神经网络实现细节... def plot_decision_boundary(clf): h = .02 # 步长 x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) plt.contourf(xx, yy, Z, alpha=0.8) plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', marker='o') plt.show() plot_decision_boundary(clf_dt) plt.title('Decision Tree Boundary') plot_decision_boundary(clf_svm) plt.title('Support Vector Machine Boundary') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值