Scikit-Learn各算法详细参数速查手册(中文)

Scikit-Learn各算法详细参数速查手册(中文)

martin


1. 线性模型

1.1 线性回归

LinearRegression是scikit-learn提供的线性回归模型,其原型为:
class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)

  • [x] 导包
    • from sklearn.linear_model import LinearRegression
  • [x] 参数
    • fit_intercept : 一个布尔值,指定是否需要计算b值。如果为False,那么不计算b值。
    • normalize : 一个布尔值。如果为True,那么训练样本会在回归之前被归一化。
    • copy_X : 一个布尔值。如果为True,则会被复制。
    • n_jobs : 一个正数。任务并行时指定的CPU数量。如果为-1则使用所有可用的CPU。
  • [x] 属性
    • coef_ : 权重向量。
    • intercept_ : 截距b值。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • score(X,y) : 返回性能得分。设预测集为 Ttest ,真实值为 yi ,真实值的均值为 y¯ ,预测值为 y^i ,则:
      score=1Ttest(yiy^i)2(yiy¯)2

1.2 线性回归的正则化

1.2.1 Lasso回归(L1正则)

原型为:
class sklearn.linear_model.Lasso(alpha=1.0,fit_intercept=True,normalize=False,precompute=False,
copy_X=True,max_iter=1000,tol=0.0001,warm_start=False,positive=False,random_state=None,
selection=’cyclic’)

  • [x] 导包
    • from sklearn.linear_model import Lasso
  • [x] 参数
    • alpha : α 值,其值越大则正则化项的占比越大。
    • fit_intercept :一个布尔值,指定是否需要计算b值。如果为False,那么不计算b值。
    • max_iter : 一个整数,指定最大迭代次数。
    • normalize :一个布尔值。如果为True,那么训练样本会在回归之前被归一化。
    • copy_X : 一个布尔值。如果为True,则会被复制。
    • precompute : 一个布尔值或者一个序列。决定是否提前计算Gram矩阵来加速计算。
    • tol : 一个浮点数,指定判断迭代收敛与否的阈值
    • warm_start : 一个布尔值。如果为True,那么使用前一次训练结果继续训练。否则从头开始训练
    • positive : 一个布尔值。如果为True,那么要求权重向量的分量都为正数。
    • selection : 一个字符串,可以为‘cyclic’或者‘random’。它指定了当每轮迭代的时候,选择权重向量的那个分量来更新。
      • cyclic:更新的时候,从前向后依次选择权重向量的一个分量来更新。
      • random:更新的时候,随机选择权重向量的一个分量来更新。
    • random_state : 一个整数或者一个RandomState实例,或者None。
      • 整数,则指定了随机数生成器的种子。
      • RandomState,则指定了随机数生成器。
      • None,则默认使用随机数生成器。
  • [x] 属性
    • coef_ : 权重向量。
    • intercept_ : 截距b值。
    • n_iter_ : 实际迭代次数。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • score(X,y) : 返回性能得分。设预测集为 Ttest ,真实值为 yi ,真实值的均值为 y¯ ,预测值为 y^i ,则:
      score=1Ttest(yiy^i)2(yiy¯)2
1.2.2 岭回归(L2正则)

原型为:
class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver=’auto’, random_state=None)

  • [x] 导包
    • from sklearn.linear_model import Ridge
  • [x] 参数
    • alpha : α 值,其值越大则正则化项的占比越大。
    • fit_intercept :一个布尔值,指定是否需要计算b值。如果为False,那么不计算b值。
    • max_iter : 一个整数,指定最大迭代次数。
    • normalize :一个布尔值。如果为True,那么训练样本会在回归之前被归一化。
    • copy_X : 一个布尔值。如果为True,则会被复制。
    • solver : 一个字符串,指定求解最优化问题的算法。可以为:
      • auto : 根据数据集自动选择算法。
      • svd :使用奇异值分解计算回归系数。
      • cholesky :使用scipy.linalg.solve函数来求解。
      • sparse_cg :使用scipy.sparse.linalg.cg函数来求解。
      • lsqr :使用scipy.sparse.linalg.lsqr函数来求解。
      • sag :使用随机梯度下降来求解
    • tol : 一个浮点数,指定判断迭代收敛与否的阈值
    • random_state : 一个整数或者一个RandomState实例,或者None。
      • 整数,则指定了随机数生成器的种子。
      • RandomState,则指定了随机数生成器。
      • None,则默认使用随机数生成器。
  • [x] 属性
    • coef_ : 权重向量。
    • intercept_ : 截距b值。
    • n_iter_ : 实际迭代次数。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • score(X,y) : 返回性能得分。设预测集为 Ttest ,真实值为 yi ,真实值的均值为 y¯ ,预测值为 y^i ,则:
      score=1Ttest(yiy^i)2(yiy¯)2
1.2.3 ElasticNet(弹性网络正则)

原型为:
class sklearn.linear_model.ElasticNet(alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False, precompute=False, max_iter=1000, copy_X=True, tol=0.0001, warm_start=False, positive=False, random_state=None, selection=’cyclic’)

  • [x] 导包
    • from sklearn.linear_model import ElasticNet
  • [x] 参数
    • alpha : α 值,其值越大则正则化项的占比越大。
    • l1_ratio : ρ 值。公式为:
      αρ||ω||1+α(1ρ)2||ω||22α00ρ1
    • fit_intercept :一个布尔值,指定是否需要计算b值。如果为False,那么不计算b值。
    • max_iter : 一个整数,指定最大迭代次数。
    • normalize :一个布尔值。如果为True,那么训练样本会在回归之前被归一化。
    • copy_X : 一个布尔值。如果为True,则会被复制。
    • precompute : 一个布尔值或者一个序列。决定是否提前计算Gram矩阵来加速计算。
    • tol : 一个浮点数,指定判断迭代收敛与否的阈值
    • warm_start : 一个布尔值。如果为True,那么使用前一次训练结果继续训练。否则从头开始训练
    • positive : 一个布尔值。如果为True,那么要求权重向量的分量都为正数。
    • selection : 一个字符串,可以为‘cyclic’或者‘random’。它指定了当每轮迭代的时候,选择权重向量的那个分量来更新。
      • cyclic:更新的时候,从前向后依次选择权重向量的一个分量来更新。
      • random:更新的时候,随机选择权重向量的一个分量来更新。
    • random_state : 一个整数或者一个RandomState实例,或者None。
      • 整数,则指定了随机数生成器的种子。
      • RandomState,则指定了随机数生成器。
      • None,则默认使用随机数生成器。
  • [x] 属性
    • coef_ : 权重向量。
    • intercept_ : 截距b值。
    • n_iter_ : 实际迭代次数。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • score(X,y) : 返回性能得分。设预测集为 Ttest ,真实值为 yi ,真实值的均值为 y¯ ,预测值为 y^i ,则:
      score=1Ttest(yiy^i)2(yiy¯)2

1.3 逻辑回归

Logistic Regressionscikit-learn提供的逻辑回归模型,其原型为:
class sklearn.linear_model.LogisticRegression(penalty=’l2’, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=’liblinear’, max_iter=100, multi_class=’ovr’, verbose=0, warm_start=False, n_jobs=1)

  • [x] 导包
    • from sklearn.linear_model import LogisticRegression
  • [x] 参数
    • penalty : 一个字符串,指定了正则化策略。
      • l2 : 优化目标为 12||ω⃗ ||22+CL(ω⃗ )
      • l1 : 优化目标为 12||ω⃗ ||1+CL(ω⃗ )
    • dual : 一个布尔值。如果为True,则求解对偶形式(只在penalty=‘l2’且solver=‘liblinear’有对偶形式),如果为False,则求解原始形式。
    • C : 一个浮点数。它指定了罚项系数的倒数。如果它的值越小,则正则化项越大。
    • fit_intercept : 一个布尔值,指定是否需要计算b值。如果为False,那么不计算b值。
    • intercept_scaling : 一个浮点数。只有当solver=‘liblinear’才有意义。当采用fit_intercept时,相当于人造了一个特征,该特征恒为1,其权重为b。在计算正则化项的时候,该人造特征也被考虑了。因此为了降低这个人造特征的影响,需要提供intercept_scaling。
    • class_weight : 一个字典或者字符串‘balanced’。
      • 字典 : 字典给出每个分类的权重。
      • balanced : 每个分类的权重与该分类在样本集中出现的频率成反比。
      • 未指定 : 每个分类权重都为1。
    • max_iter : 一个整数,制定最大迭代数。
    • random_state :一个整数或者一个RandomState实例,或者None。
      • 整数,则指定了随机数生成器的种子。
      • RandomState,则指定了随机数生成器。
      • None,则默认使用随机数生成器。
    • solver : 一个字符串,指定了求解最优化的算法,可以为:
      • newton-cg : 使用牛顿法。只适用于penalty=‘l2’。
      • lbfgs : 使用L-BFGS拟牛顿法。只适用于penalty=‘l2’。
      • liblinear : 使用liblinear,适用于小数据集。
      • sag : 使用Stochastic Average Gradient Descent算法,适用于大数据集。只适用于penalty=‘l2’。
    • tol : 一个浮点数,指定判断迭代收敛与否的阈值
    • multi_class : 一个字符串,指定对于多分类问题的策略,可以为:
      • ovr : 采用one-vs-rest策略。
      • multinomial : 直接采用多分类逻辑回归策略,不能与liblinear共存。
    • verbose : 一个正数。用于开启关闭迭代中输出日志。
    • warm_start: 一个布尔值。如果为True,那么使用前一次训练结果继续训练。否则从头开始训练
    • n_jobs : 一个正数。任务并行时指定的CPU数量。如果为-1则使用所有可用的CPU。
  • [x] 属性
    • coef_ : 权重向量。
    • intercept_ :b值。
    • n_iter :实际迭代次数。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • predict_log_proba(X) : 返回一个数组,数组的元素依次是X预测为各个类别的概率的对数值。
    • predict_proba(X) : 返回一个数组,数组的元素依次是X预测为各个类别的概率值。
    • score(X,y) : 返回在(X,y)上预测的准确率(accuracy)。

1.4 线性判别分析

LinearDiscriminationAnalysisscikit-learn提供的线性判别分析模型,其原型为:
class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver=’svd’, shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)[source]

  • [x] 导包
    • from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
  • [x] 参数
    • solver : 一个字符串,指定求解最优化问题的算法,可以为:
      • svd:奇异值分解,对于有大规模特征的数据推荐用此种算法。
      • lsqr:最小平方QR分解法,可以结合shrinkage,适合大且稀疏的矩阵。
      • eigen:特征值分解法,可以结合shrinkage。
    • shrinkage : 字符串‘auto’或者浮点数或者None。该参数通常在训练样本数量小于特征数量的场合下使用。该参数只有在solver=lsqr或者eigen下才有意义。
    • priors : 一个数组,数组中的元素依次指定了每个类别的先验概率。如果为None,则认为每个类别的先验概率是均等的。
    • n_components :
    • store_covariance :
    • tol :
  • [x] 属性
    • coef_ : 权重向量。
    • intercept_ : b值。
    • covariance :一个数组,依次给出每个类别的协方差矩阵。
    • means_ : 一个数组,依次给出每个类别的均值向量。
    • xbar_ : 给出了整体样本的均值向量。
    • n_iter : 实际迭代次数。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • predict_log_proba(X) : 返回一个数组,数组的元素依次是X预测为各个类别的概率的对数值。
    • predict_proba(X) : 返回一个数组,数组的元素依次是X预测为各个类别的概率值。
    • score(X,y) : 返回在(X,y)上预测的准确率(accuracy)。

2. 决策树

2.1 回归决策树

DescisionTreeRegressor实现了回归决策树,用于回归问题,其原型为:
class sklearn.tree.DecisionTreeRegressor(criterion=’mse’, 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_split=1e-07, presort=False)[source]

  • [x] 导包
    • from sklearn.tree import DecisionTreeRegressor
  • [x] 参数
    • criterion : 一个字符串,指定切分质量的评价标准。默认为‘mse’,且只支持该字符串,表示均方误差。
    • splitter : 一个字符串,指定切分原则,可以为:
      • best : 表示选择最优的切分。
      • random : 表示随机切分。
    • max_features : 可以为整数、浮点、字符或者None,指定寻找best split时考虑的特征数量。
      • 如果是整数,则每次切分只考虑max_features个特征。
      • 如果是浮点数,则每次切分只考虑max_features*n_features个特征(max_features指定了百分比)。
      • 如果是字符串‘auto’,则max_features等于n_features。
      • 如果是字符串‘sqrt’,则max_features等于sqrt(n_features)。
      • 如果是字符串‘log2’,则max_features等于log2(n_features)。
      • 如果是字符串None,则max_features等于n_features。
    • max_depth : 可以为整数或者None,指定树的最大深度。
      • 如果为None,表示树的深度不限(知道每个叶子都是纯的,即叶子结点中的所有样本点都属于一个类,或者叶子中包含小于min_sanples_split个样本点)。
      • 如果max_leaf_nodes参数非None,则忽略此项。
    • min_samples_split : 为整数,指定每个内部节点(非叶子节点)包含的最少的样本数。
    • min_samples_leaf : 为整数,指定每个叶子结点包含的最少的样本数。
    • min_weight_fraction_leaf : 为浮点数,叶子节点中样本的最小权重系数。
    • max_leaf_nodes : 为整数或None,指定叶子结点的最大数量。
      • 如果为None,此时叶子节点数不限。
      • 如果非None,则max_depth被忽略。
    • class_weight : 一个字典、字典的列表、字符串‘balanced’或者None,他指定了分类的权重。权重形式为:{class_label:weight}
      • 如果为None,则每个分类权重都为1.
      • 字符串‘balanced’表示每个分类的权重是各分类在样本出现的频率的反比。
    • random_state : 一个整数或者一个RandomState实例,或者None。
      • 如果为整数,则它指定了随机数生成器的种子。
      • 如果为RandomState实例,则指定了随机数生成器。
      • 如果为None,则使用默认的随机数生成器。
    • presort : 一个布尔值,指定了是否要提前排序数据从而加速寻找最优切分的过程。设置为True时,对于大数据集会减慢总体训练过程,但对于小数据集或者设定了最大深度的情况下,则会加速训练过程。
  • [x] 属性
    • feature_importances_ : 给出了特征的重要程度。该值越高,则特征越重要(也称为Gini importance)。
    • max_features_ : max_feature的推断值。
    • n_features_ : 当执行fit后,特征的数量。
    • n_outputs_ : 当执行fit后,输出的数量。
    • tree_ : 一个Tree对象,即底层的决策树。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • score(X,y) : 返回性能得分。设预测集为 Ttest ,真实值为 yi ,真实值的均值为 y¯ ,预测值为 y^i ,则:
      score=1Ttest(yiy^i)2(yiy¯)2

2.2分类决策树

DescisionTreeClassifier实现了分类决策树,用于分类问题,其原型为:
class 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_split=1e-07, class_weight=None, presort=False)

  • [x] 导包
    • from sklearn.tree import DecisionTreeClassifier
  • [x] 参数

    • criterion : 一个字符串,指定切分质量的评价标准。可以为:

      • ‘gini’ :表示切分标准是Gini系数。切分时选取基尼系数小的属性切分。
        Gini(D)=1k=1K(|Ck||D|)2
        AaDD1D2
        Gini(D,A)=|D1||D|Gini(D1)+|D2||D|Gini(D2)
      • ‘entropy’ : 表示切分标准是熵。切分时选取熵大的属性切分。数据集总量为 |D| ,共有 K 个类,每个类数量为 |Ck| ,根据特征A可以将数据集切分,每个数据集数量为 |Di|:
        DH(D)=k=1K|Ck||D|log2|Ck||D|
        ADH(D|A)=i=1n|Di||D|H(Di)=i=1n|Di||D|k=1K|Dik||Di|log2|Dik||Di|
        g(D,A)=H(D)H(D|A)
    • splitter : 一个字符串,指定切分原则,可以为:

      • best : 表示选择最优的切分。
      • random : 表示随机切分。
    • max_features : 可以为整数、浮点、字符或者None,指定寻找best split时考虑的特征数量。
      • 如果是整数,则每次切分只考虑max_features个特征。
      • 如果是浮点数,则每次切分只考虑max_features*n_features个特征(max_features指定了百分比)。
      • 如果是字符串‘auto’,则max_features等于n_features。
      • 如果是字符串‘sqrt’,则max_features等于sqrt(n_features)。
      • 如果是字符串‘log2’,则max_features等于log2(n_features)。
      • 如果是字符串None,则max_features等于n_features。
    • max_depth : 可以为整数或者None,指定树的最大深度。
      • 如果为None,表示树的深度不限(知道每个叶子都是纯的,即叶子结点中的所有样本点都属于一个类,或者叶子中包含小于min_sanples_split个样本点)。
      • 如果max_leaf_nodes参数非None,则忽略此项。
    • min_samples_split : 为整数,指定每个内部节点(非叶子节点)包含的最少的样本数。
    • min_samples_leaf : 为整数,指定每个叶子结点包含的最少的样本数。
    • min_weight_fraction_leaf : 为浮点数,叶子节点中样本的最小权重系数。
    • max_leaf_nodes : 为整数或None,指定叶子结点的最大数量。
      • 如果为None,此时叶子节点数不限。
      • 如果非None,则max_depth被忽略。
    • class_weight : 一个字典、字典的列表、字符串‘balanced’或者None,他指定了分类的权重。权重形式为:{class_label:weight}
      • 如果为None,则每个分类权重都为1.
      • 字符串‘balanced’表示每个分类的权重是各分类在样本出现的频率的反比。
    • random_state : 一个整数或者一个RandomState实例,或者None。
      • 如果为整数,则它指定了随机数生成器的种子。
      • 如果为RandomState实例,则指定了随机数生成器。
      • 如果为None,则使用默认的随机数生成器。
    • presort : 一个布尔值,指定了是否要提前排序数据从而加速寻找最优切分的过程。设置为True时,对于大数据集会减慢总体训练过程,但对于小数据集或者设定了最大深度的情况下,则会加速训练过程。
  • [x] 属性
    • classes_ : 分类的标签值。
    • feature_importances_ : 给出了特征的重要程度。该值越高,则特征越重要(也称为Gini importance)。
    • max_features_ : max_feature的推断值。
    • n_classes_ : 给出了分类的数量。
    • n_features_ : 当执行fit后,特征的数量。
    • n_outputs_ : 当执行fit后,输出的数量。
    • tree_ : 一个Tree对象,即底层的决策树。
  • [x] 方法
    • fit(X,y) : 训练模型。
    • predict(X) : 用模型预测,返回预测值。
    • predict_log_proba(X) : 返回一个数组,数组元素依次为X预测为各个类别的概率值的对数值。
    • predict_proba(X) : 返回一个数组,数组元素依次为X预测为各个类别的概率值。
    • score(X,y) : 返回在(X,y)上预测的准确率(accuracy)。

3. 贝叶斯分类器

朴素贝叶斯算法

  • 输入
    • 训练集 T=(x1,y1),(x2,y2),...,(xN,yN) , xi=(x(1)i,x(2)i,...,x(n)i)T , x(j)i 为第i个样本的第j个特征,其中 x(j)i{ aj1,aj2,...,ajsj}
  • 12
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值