机器学习算法模型特点总结
1.回归问题可以使用的模型
Linear and Polynomial Regression,
Neural Networks,
Regression Trees,
Random Forests,
Support Vector Regression,
Naive Bayes
2.KNeighborsClassifier
特点:解决分类问题;neighbors的值设的越小,模型越复杂,方差大;neighbors的值设的越大,模型越简单,方差小,决策边界平滑;
提供预测的baseline很方便;特征太多(几百个),运算会很慢;
适用小数据集
3.LinearRegression
特点:适用于特征多的情况,尤其是特征数比样本点数更多;大数据集;
4.from sklearn.linear_model import Ridge
带L2正则化的线性回归;
Ridge(alpha=10).fit(X_train, y_train);alpha控制正则化程度,越大模型越简单;
5.from sklearn.linear_model import Lasso
L1正则化,可以用于特征选取; 较小的alpha能拟合更复杂的模型,得到较好的结果,非0的特征越多;提供更易于解释的模型(因为使用的特征少)
6.LinearSVC(), LogisticRegression()
处理回归问题,注意penalty parameter(C越小,模型越简单,特征参数少)设置
7.GaussianNB,BernoulliNB, and MultinomialNB.(参数alpha越大,模型越平稳,简单[模型越复杂意味着容易过拟合];提供baseline;大数据集,高维数据)
GaussianNB:应用于任何连续的数据,适合处理高维数据
BernoulliNB:处理二分类数据,文本分类
MultinomialNB:处理计数数据,文本分类(大文本效果更好)
8.DecisionTreeClassifier, DecisionTreeRegressor
防止过拟合,预裁剪,后裁剪;
sklearn只实现了预裁剪,通过控制树的最大深度等属性(max_depth, max_leaf_nodes, or min_samples_leaf),考虑划分使用的最大特征数等方法实现;
通过查看DT的feature_importances_属性,检查各个特征的重要性;
不需要正则化,标准化预处理数据;容易过拟合;
tree-based模型适合处理特征相差较大的数据
9.RandomForestRegressor
解决DT过拟合问题;设置max_features(较大意味着DT相似性高)增加子DT多样性;
分类:max_features=sqrt(n_features);回归:max_features=log2(n_features)
n_estimators(设置尽可能大)越大,模型方差越小;n_jobs设置CPU并行;
不适合处理高维,稀疏,文本数据;
10.GradientBoostingClassifier
max_depth:一般比较浅,设为1-5;
learning_rate一般默认;
n_estimators 太大容易过拟合;
不适合处理高维,稀疏,文本数据;
11.xgboost工具箱
实现了Gradient Boosting algorithm, Stochastic Gradient Boosting, Regularized Gradient Boosting;
运行速度非常快,
12.SVC
sklearn 实现了两种类型的内核:polynomial kernel,Gaussian kernel(RBF);
参数gamma:控制高斯内核宽度,越大越容易过拟合;
参数C:正则化参数,越大越容易过拟合;
需要进行rescale的预处理,可以由MinMaxScaler实现;
低维,高维特征都适用;
样本数太大(>100000),处理时间会很长;
适用中型规模数据;
13.MLPClassifier
参数hidden_layer_sizes:设置隐层层数,神经元数
alpha:控制正则化,越小越容易过拟合
需要进行rescale的预处理,StandardScaler
适合处理homogeneous类数据
还没有评论,来说两句吧...