SVM(支持向量机)
SVM的优点:
1.在高维中表现良好。在现实世界中有无限维度(不仅仅是2D和3D)。例如,图像数据、基因数据、医学数据等具有更高的维数,支持向量机在这方面是有用的。基本上,当特征/列的数量较多时,SVM表现良好。
2.类可分离时的最佳算法(当两个类的实例可以通过直线或非线性轻松分隔时)。为了描述可分离的类,让我们举个例子(这里以线性分离为例,通过绘制抛物线等,类也可以是非线性可分离的)。在第一个图中,您无法轻易分辨X是属于类1还是类2,但是情况2中,您可以轻易判断出X属于类2。因此,在第二种情况下,类是线性可分离的。
- 离群值的影响较小。
- SVM适用于极端情况下的二元分类。
SVM的缺点: - 慢:对于较大的机器学习数据集,需要大量时间来处理。
- 重叠类的性能不佳:重叠类的情况下效果不佳。
- 选择适当的超参数很重要:这将允许足够的泛化性能。
- 选择适当的核函数可能比较麻烦。
SVM的应用范围:
Bag of words应用程序(许多特征和列),语音识别数据,图像分类(非线性数据),医学分析(非线性数据),文本分类(许多特征)。
朴素贝叶斯
朴素贝叶斯的优点:
1.实时预测:速度非常快,可以实时使用。 - 可通过大型数据集进行扩展。
- 对无关特征不敏感。
- 在朴素贝叶斯中可以有效地进行多类预测。
- 具有高维数据的良好性能(特征数量很大)。
朴素贝叶斯的缺点:
1.特征的独立性不成立:朴素贝叶斯的基本假设是每个特征对结果做出独立且平等的贡献。但是,大多数情况下不满足此条件。 - 糟糕的估算器:不要太认真看待预测的概率输出。
- 训练数据应该很好地代表总体:如果没有一起出现类别标签和某个属性值(例如,class =“ No”,shape =“ Overcast”),则后验概率为零。因此,如果训练数据不能代表总体,那么朴素贝叶斯将无法很好地工作(通过平滑技术可以解决此问题)。
朴素贝叶斯的应用范围:
朴素贝叶斯可用于文本分类(可以预测多个类别,并且不介意处理不相关的特征)、垃圾邮件过滤(识别垃圾邮件)、情感分析(在社交媒体分析中识别正面和负面情绪),推荐系统(用户下一步将购买什么)。
逻辑回归
逻辑回归的优点:
1.易于实现 - 有效
- 不需要缩放特征:不需要缩放输入特征(也可以使用缩放特征,但是不需要缩放)。
- 不需要调整超参数。
逻辑回归的缺点:
1.非线性数据(例如图像数据)性能不佳。 - 具有不相关和高度相关的特征的性能较差(删除相似或相关的特征和不相关的特征)。
- 不是很强大的算法,很容易被其他算法超越。
- 高度依赖正确的数据表示。所有重要的变量/特性都应该被识别,这样才能很好地工作。
逻辑回归的应用范围:
最好是任何二元分类问题(它也可以执行多类分类,但最好是二元的)。如果您的输出类有两个结果,则可以使用它,例如癌症检测问题,客户借贷时是否违约,客户是否流失,电子邮件是否为垃圾邮件等。
随机森林
随机森林的优点:
1.随机森林可以去相关树。它选取训练样本,给每棵树一个特征子集(假设训练数据是[1,2,3,4,5,6],那么一棵树将得到训练数据子集[1,2,3,2,6,6])。注意,训练数据的大小保持不变,两个数据的长度都是6,在随机采样的训练数据中,2和6是重复的。每棵树都根据它的特征进行预测。在这种情况下,树1只能访问特性1、2、3和6,因此它可以根据这些特征进行预测。其他一些树会访问特征1、4、5,所以它会根据这些特征进行预测。如果特征高度相关,那么这个问题可以在随机森林中解决。 - 减少误差:随机森林是一个决策树的集合。为了预测某一行的结果,随机森林从所有树中获取输入,然后预测结果。这保证了树的个体误差最小化,并减少了总体方差和误差。
- 在不平衡数据集上的良好性能:它还可以处理不平衡数据中的错误(一个类占多数,另一个类占少数)。
- 处理大量数据:它可以处理大量的数据与更高维度的变量。
- 正确处理缺失的数据:它可以很好地处理缺失值。因此,如果模型中有大量丢失的数据,它也可以提供良好的结果。
- 离群值的影响很小:由于最后的结果是通过查询许多决策树得出的,所以某些离群值的数据点不会对随机森林产生很大的影响。
- 没有过度拟合的问题:在随机森林中,只考虑特征的一个子集,最终结果取决于所有的树。所以有更好的泛化能力和更少的过度拟合。
- 有助于提取特征重要性(我们可以将其用于特征选择)。
随机森林的缺点: - 特征需要具有一定的预测能力,否则将无法正常工作。
- 树木的预测需要特征不相关。
- 出现为黑匣子:很难知道发生了什么。您最多可以尝试使用不同的参数和随机种子来更改结果和性能。
随机森林的应用范围:
信用卡违约(欺诈客户/非欺诈客户),识别患者,电子商务网站的推荐系统等。
决策树
决策树的优点: - 不需要归一化或缩放数据。
- 处理缺失值:缺失值不会产生重大影响。
- 易于向非技术团队成员解释。
- 轻松可视化
- 自动特征选择:不相关的特征不会影响决策树。
决策树的缺点 - 容易过度拟合。
- 对数据敏感。如果数据稍有变化,结果可能会在很大程度上变化。
- 训练决策树需要更长的时间。
决策树的应用范围:
识别产品的买家,预测违约的可能性,哪一种策略可以使利润最大化,寻找成本最小化的策略,哪一种特性对吸引和留住客户最重要(是购物的频率,是频繁的折扣,还是产品组合等),机器故障诊断(持续测量压力、振动和其他测量,并在故障发生前进行预测)等。
XGBoost
XGBoost的优点: - 所需的特征工程较少(不需要数据缩放,数据归一化,也可以很好地处理缺失值)。
- 可以发现特征的重要性(它输出每个特征的重要性,可用于特征选择)。
- 离群值具有最小的影响。
- 可以很好地处理大型数据集。
- 良好的执行速度。
- 出色的模型表现(在大多数Kaggle比赛中获胜)。
- 不太容易过拟合。
XGBoost的缺点: - 解释困难,可视化困难。
- 如果参数未正确调整,则可能过度拟合。
- 由于存在太多超参数,因此难以调整。
XGBoost的应用领域:
可用于任何分类问题。如果特征太多、数据集太大、存在离群值和缺失值,并且不想进行太多特征工程,则XGBoost特别有用。它几乎赢得了所有比赛的胜利,因此这是解决任何分类问题时必须牢记的一种算法。
k-NN(K最近邻)
k-NN的优点: - 简单易懂,易于实现。
- 没有关于数据的假设(例如,在线性回归的情况下,我们假设因变量和自变量线性相关,在朴素贝叶斯中,我们假设特征彼此独立,但是k-NN不对数据做任何假设)。
- 不断扩展的模型:当暴露于新数据时,它会更改以适应新数据点。
- 多类问题也可以解决。
- 一个超级参数:在选择第一个超级参数时,K-NN可能需要一些时间,但剩下的参数是一致的。
k-NN的缺点: - 对于大型机器学习数据集,速度较慢。
- 维度诅咒:在具有大量特征的机器学习数据集上效果不佳。
- 必须对数据进行缩放。
- 在不平衡数据上效果不佳。因此,在使用k-NN之前,要么欠采样多数类,要么过采样少数类,使得具有一个平衡的数据集。
5.对离群值敏感。
6.不能很好地处理缺失值。
k-NN的应用范围:
当机器学习数据集较小且特征数较少时,可用于任何分类问题,使得k-NN占用的计算时间较少。如果您不知道数据的形状以及输出和输入的关联方式(是否可以用直线,椭圆或抛物线等分隔类),则可以使用k-NN。