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)
具体参数详解:
参数 | 默认值 | 含义 | |
C | 1.0 | 惩罚参数 C值越大,惩罚越强,但泛化能力弱; C值越小,惩罚越弱,容错增强,泛化能力强。 | |
kernel | 'rbf' | 核函数 'linear' -- 线性核函数 ‘ploy’ -- 多项式核函数 'rbf' -- 高斯核函数 'sigmod' -- sigmod核函数 'precomputed' -- 核矩阵【是自己提前计算好的核函数矩阵,n*n】 | |
degree | 3 | 多项式核函数的阶数 只对多项式核函数有用 | |
gamma | auto | 核函数系数 只对rbf, poly, sigmod 有效 若gamma为auto,该值为样本特征数的倒数 | |
coef0 | 0.0 | 核函数中的独立项 只对poly和sigmod有用,指其中的参数c | |
shrinking | True | 是否采用启发式搜索方式 | |
probability | False | 是否启用概率估计 必须在调用fit 之前启用 | |
tol | 1e-3 | svm停止训练的误差精度 | |
cache_size | 200 | 内存大小 指定训练所需要的内存,以MB为单位 | |
class_weight | None |
类别权重 给每个类别设置不同的惩罚参数,不给则全设置为 1 若设定为 balance ,则用y的值自动调整与输入数据中类频率成反比的权重 | |
verbose | False | 是否启用详细输出 | |
max_iter | -1 | 最大迭代次数 -1 表示不限制迭代次数 | |
decision_function_shape | ovr | 决策函数类型 'ovo' one vs one 'ovr' one vs rest | |
random_state | None | 数据洗牌时的种子值 混洗数据时用于概率估计 |
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)
参数 | 默认值 | 含义 |
criterion | gini | 分裂节点所用标准 |
spliter | best | 用在每个节点上选择拆分的策略 |
max_depth | None | 树的最大深度 为None,表示将节点展开,知道所有叶子都是纯净的(只有一个类),或直到所有叶子都包含少于min_samples_split个样本 |
min_samples_split | 2 | 拆分内部节点所需最少样本数 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_state | None | 随机种子 负责控制分裂特征的随机性,为整数 |
max_leaf_nodes | None | 最大叶子节点数 整数 |
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 | 弱分类器数量 | |
booster | gbtree | 若学习器类型 ‘gblinear’ 表示使用线性模型作为弱学习器 |
learning_rate | 0.3 | 学习率 推荐候选值:
|
gamma | 0 | 指定叶节点进行分支所需的损失减少的最小值 设置的值越大,模型就越保守 |
reg_alpha | L1正则化权重项,增加此值将使模型更加保守 | |
reg_lambda | L2正则化权重项,增加此值将使模型更加保守 | |
max_depth | 6 | 树的最大深度 |
min_child_weight | 叶子上的最小样本数 | |
colsample_bytree | 1 | 列采样比例。 在构建一棵树时,会采样一个特征集合,采样比例通过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 | 若在估计器拟合中发生错误,要分配给该分数的值 (一般不需要指定) |