16.算法选择

16.算法选择_第1张图片
Scikit 官方图

简单看一下(点击看大图)
四大类解决方案

  1. 分类
  2. 回归
  3. 聚类
  4. 降维

预测结果是一个类别,且现在有已标记数据的情况

  1. 对于大量数据 (10w+),在线学习
    1.1 利用SGD(stochastic gradient descent )随机梯度下降方法
    1.2 SDG,效果不好改用 kernel approximation 核逼近的方法
  2. 对于非海量数据
    2.1 线性SVC(多分类是一对一模式)
    2.2 若不管用,则

2.2.1 文本数据用朴素贝叶斯
2.2.2 非文本数据用KNN,
2.2.3 效果不好则尝试基于SVC和投票分类器的集成学习

预测结果是一个类别,没有标记好数据的情况

  1. 对于知道类别数量的情况
    1.1 利用KMeans
    1.2 效果不好,则利用Spectral Clustering(谱聚类)或者高斯混合模型聚类
  2. 对于不知道类别数量的情况
    2.1 数据量小的情况时用MiniBatch Kmeans,或者VBGMM

预测结果是一个连续的数值

  1. 小数据量
    1.1 一小部分特征重要的情况用:Lasso()或者ElasticNet()
    1.2 利用RidgeRegression或者SVR(linear)
    1.3效果不好用集成式回归和SVR(rbf)
  2. 大数据量
    2.1 随机梯度下降(SGD Regressor)

预测结果也不是一个数值

  1. 随机主成分分析(randomized PCA)
  2. 效果不好则观察数据集大小
    2.1 大数据集用核逼近
    2.2 小数据集利用Isomap(Isometric Feature Mapping)和谱嵌入(spectral embedding)
    2.3 效果不好则用,LLE

你可能感兴趣的:(16.算法选择)