knn 贝叶斯 决策树
优点: 训练时间快 没参数 预测最快
超参数少 不会过拟合
缺点: 预测时间长 容易欠拟合 容易过拟合
若设置: 特征数d(连续),样本总数为n,种类数m
预测: O(d*n) O(m*d) O(log2 n)
训练: O(1) O(n*d) O(d*n*log2 n)
参数: k 无 剪枝参数
下面把这三种分类的图像进行展示,更直观的看出不同:
knn的模型分类,是可以较为清晰的分辨出来这个月亮型数据集的分类,可以选择调整参数使其更加平滑。
贝叶斯的分类,可以明显看出来,它并不适合于这个月亮型数据,分类的界限并不明显,容易欠拟合,因为贝叶斯分类对缺失的数据不敏感。
决策树的分类,就是一看就知道是它,因为每一次的分类其实就是选择的过程,如果是那一类它就属于那一类不会波动,比较容易理解,但是决策树容易过拟合,可以通过调整剪枝参数来改进。
因为这三种分类算法优缺点并存,那是否我们可以将这三种分类算法集合起来去使用?