总览

算法名称 类型 应用 线性/非线性 是否需要规范化 scikit-learn
线性回归(linear regression) 回归 对一个或多个数量的特征对标量目标进行建模。 虽然回归计算线性组合,但如果特征与目标间的关系已知或可以猜测,则特征可以通过非线性函数进行转换. 线性 .linear_model.LinearRegression
逻辑回归(logistic regression) 分类 基于数量特征对观测值进行分类,预测目标类别或目标类别的概率. 线性 .linear_model.LogisticRegression
SVM 分类/回归 基于高维空间分离的分类,预测目标分类,目标分类的概率需要另外计算。使用部分数据进行回归,性能高度依赖于数据. 线性 .svm
核函数SVM(SVM with kernel) 分类/回归 支持多种非线性模型的支持向量机 非线性 .svm
K-近邻算法(k-nearest neighbors) 分类/回归 通过训练集与测试样本之间的“最短距离”(如欧氏距离)计算目标变量。对于分类,由训练目标进行“投票”。对于回归,计算训练目标的平均值。预测基于数据的一个”局部”子集,但对于某些数据集精度很高 非线性 .neighbors.KNeighborsClassifier
.neighbors.KNeighborsRegressor
决策树(decision tree) 分类/回归 基于测试数据的属性值把训练数据迭代的分成数据子集,并产生预测目标的决策树。产生易于理解的模型,但随机森林和增强算法的错误率更低 非线性 .tree.DecisionTreeClassifier()
.tree.DecisionTreeRegressor()
随机森林(random forest) 分类/回归 决策树的“集合”用于产生比单个决策树更强的预测,对于分类,多个决策树进行“投票”。对于回归,对他们的结果求平均 非线性 .ensemble.RandomForestClassifier
.ensemble.RandomForestRegressor
增强算法(boosting) 分类/回归 对于多数方法,增强算法通过调整权值降低泛化错误,对于误分类或(对于回归)较大残差的样本加大权重 非线性 .ensemble.GradientBoostingClassifier
.ensemble.GradientBoostingClassifier
朴素贝叶斯算法(Native Bayes) 分类 一个简单的、可拓展的分类算法,适用于文本分类任务(如垃圾邮件分类)。它假定特征间都是互相独立的(因此称为朴素的),但事实上这种情况很少,但算法在特定的场合工作得很好。它利用贝叶斯定力,但不是统计领域中使用的“贝叶斯” 非线性 .naive_bayes
神经网络(neural network) 分类/回归 用于通过反向传播算法来估计基于大量输入的未知函数。通常比其他方法更复杂,计算量更大,但是对于一般的问题更强大 非线性 .neural_network
XGBoost 分类/回归 增强决策树算法的高度优化和可拓展版本
http://xgboost.readthedocs.io/en/latest/
Vowpal Wabbit 分类/回归 结合了各种算法的在线机器学习程序,不要求所有数据驻留内存,以快速处理大数据著称。只有一种输入格式,并且通常以命令行的方式运行。
https://github.com/JohnLangford/vowpal_wabbit/wiki/Tutorial