总览¶
算法名称 | 类型 | 应用 | 线性/非线性 | 是否需要规范化 | 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 |