k最近邻
适用于小型数据集
优点
- 模型很容易理解,通常不需要过多调节就可以得到不错的性能,是一种很好的基准方法
缺点
- 预测速度慢,不能处理具有很多特征的数据集
- 对于大多数特征的大多数取值都为0的数据集(稀疏数据集)来说,这一算法的效果尤其不好。
参数
1、邻居个数 n_neighbors
- 随着邻居个数的增多,模型变得简单,决策边界越来越光滑,训练集精度下降
- 使用较小的邻居个数(比如3个或5个)往往可以得到比较好的结果
2、数据点之间距离的度量方法:默认使用欧式距离
线性模型
- 适用于非常大的数据集(训练其他模型不太可行),对稀疏数据也很有效,也适用于高维数据。
- 如果特征数量大于样本数量,线性模型的表现通常都很好。
LinearRegression
对数据存在过拟合,Ridge
是一种约束更强的模型,更不容易过拟合,Lasso
使某些系数刚好为0,更容易解释
优点
- 线性模型的训练速度非常快,预测速度也很快。可以推广到非常大的数据集,对稀疏数据也有效。如果数据包含数十万甚至上百万个样本,可能需要研究如何使用
LogisticRegression
和Ridge
模型的solver='sag'
选项,在处理大型数据时,这一选项比默认值要更快。 - 用了我们之间见过的用于回归和分类的公式,理解如何进行预测是相对比较容易的。
缺点
- 往往不完全清楚系数为什么是这样的。如果数据集中包含高度相关的特征,很难对系数做出解释。
- 在更低维的空间中,其他模型(SVM等)的泛化性能可能更好。
参数
1、正则化参数
①回归正则化参数 alpha
- 默认
alpha=1
; - alpha值越大,使系数更加趋于0,模型更加简单;
- 减小alpha值可以提高泛化性能,alpha太小会出现过拟合,得到线性回归的相似结果
②分类正则化参数 C
- 默认
C=1
; - C值越小,系数向量更接近于0,模型比较简单,尽量适应“大多数”数据点,正则化强;
- C值越大,尽可能将训练集拟合到最好(使每个数据点分类准确)
2、回归:L1正则化(Lasso)还是L2正则化(Ridge)
分类:L1正则化还是L2正则化 penalty=”l1”
,solver='liblinear'
- 默认使用L2正则化
- 如果假定只有几个特征是真正重要的,如果模型的可解释性很重要的话,那么应该用L1正则化。由于L1只用到几个特征,所以更容易解释哪些特征对模型是重要的,以及这些特征的作用。