机器学习——几种分类器实现代码及交叉验证评估参数总结(SVC、CART、XGBoost)

SVC

sklearn.svm.SVC() 函数全称为C-支持向量分类器

代码实现:

sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, 
					coef0=0.0, shrinking=True, probability=False, tol=0.001, 
					cache_size=200, class_weight=None, verbose=False, max_iter=-1, 
					decision_function_shape=’ovr’, random_state=None)

具体参数详解:

参数默认值含义
C1.0

惩罚参数

C值越大,惩罚越强,但泛化能力弱;

C值越小,惩罚越弱,容错增强,泛化能力强。

kernel'rbf'

核函数

'linear' -- 线性核函数

‘ploy’ -- 多项式核函数

'rbf' -- 高斯核函数

'sigmod' -- sigmod核函数

'precomputed' -- 核矩阵【是自己提前计算好的核函数矩阵,n*n】

degree3

多项式核函数的阶数

只对多项式核函数有用

gammaauto

核函数系数

只对rbf, poly, sigmod 有效

若gamma为auto,该值为样本特征数的倒数

coef00.0

核函数中的独立项

只对poly和sigmod有用,指其中的参数c

shrinkingTrue是否采用启发式搜索方式
probabilityFalse

是否启用概率估计

必须在调用fit 之前启用

tol1e-3svm停止训练的误差精度
cache_size200

内存大小

指定训练所需要的内存,以MB为单位

class_weightNone
{dict,'balanced'}

类别权重

给每个类别设置不同的惩罚参数,不给则全设置为 1 

若设定为 balance ,则用y的值自动调整与输入数据中类频率成反比的权重

verboseFalse

是否启用详细输出

max_iter-1

最大迭代次数

-1   表示不限制迭代次数

decision_function_shapeovr

决策函数类型

'ovo'   one vs one

'ovr'    one vs rest

random_stateNone

数据洗牌时的种子值

混洗数据时用于概率估计

CART 模型评估

sklearn.tree.DecisionTreeClassifier(*, criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, 
min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, 
min_impurity_split=None, class_weight=None, presort='deprecated', ccp_alpha=0.0)
参数默认值含义
criteriongini分裂节点所用标准
spliterbest用在每个节点上选择拆分的策略
max_depthNone

树的最大深度

为None,表示将节点展开,知道所有叶子都是纯净的(只有一个类),或直到所有叶子都包含少于min_samples_split个样本

min_samples_split2

拆分内部节点所需最少样本数

int类型,则将ming_samples_split视为最小值

float类型,则为分数

ceil(min_samples_split * n_samples)是每个拆分的最小样本数

min_weight_fraction_leaf

在所有叶节点处(所有输入样本)的权重总和中的最小加权分数。

如果未提供sample_weight,则样本的权重相等。

max_features

寻找最佳分割时要考虑的特征数量

int类型,每个拆分中考虑max_features个特征

float类型,max_features是一个分数,每次拆分时考虑int(max_features * n_features)个特征

“auto”,则max_features = sqrt(n_features)

“ sqrt”,则max_features = sqrt(n_features)

“ log2”,则max_features = log2(n_features)

None,则max_features = n_features。

注意:在找到至少一个有效的节点样本分区之前,分割的搜索不会停止,即使它需要有效检查多个max_features功能也是如此。

random_stateNone

随机种子

负责控制分裂特征的随机性,为整数

max_leaf_nodesNone

最大叶子节点数

整数

feature_importances_特征重要度

XGBoost

XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
              colsample_bynode=1, colsample_bytree=1, gamma=0, gpu_id=-1,
              importance_type='gain', interaction_constraints='',
              learning_rate=0.300000012, max_delta_step=0, max_depth=6,
              min_child_weight=1, missing=nan, monotone_constraints='()',
              n_estimators=100, n_jobs=12, num_parallel_tree=1, random_state=0,
              reg_alpha=0, reg_lambda=1, scale_pos_weight=1, subsample=1,
              tree_method='exact', validate_parameters=1, verbosity=None)

参数默认值含义
n_estimators弱分类器数量
boostergbtree

若学习器类型

 ‘gblinear’ 表示使用线性模型作为弱学习器

learning_rate0.3

学习率

推荐候选值:

  1. [0.01, 0.015, 0.025, 0.05, 0.1]

gamma0

指定叶节点进行分支所需的损失减少的最小值

设置的值越大,模型就越保守

reg_alphaL1正则化权重项,增加此值将使模型更加保守
reg_lambdaL2正则化权重项,增加此值将使模型更加保守
max_depth6树的最大深度
min_child_weight叶子上的最小样本数
colsample_bytree1

列采样比例。

在构建一棵树时,会采样一个特征集合,采样比例通过colsample_bytree控制

默认为1,即使用全部特征。

交叉验证

cross_val_score函数

代码实现:

sklearn.model_selection.cross_val_score(estimator, X, y=None, groups=None, scoring=None, cv=’warn’, n_jobs=None, verbose=0, fit_params=None, pre_dispatch=‘2*n_jobs’, error_score=’raise-deprecating’)

参数设置:

参数默认值含义
estimator需要使用交叉验证的算法
X输入的样本数据
y样本标签
groups

将数据集分割为训练集/测试集时使用的样本组标签

(一般用不到)

scoring交叉验证可用的评价指标
cv交叉验证折数(可迭代次数)
n_jobs

同时工作的CPU个数

(-1表示全部)

fit_params传递给估计器(验证算法)的你和方法的参数
pre_dispatch控制并行执行期间调度的作业数量
error_score

若在估计器拟合中发生错误,要分配给该分数的值

(一般不需要指定)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值