后勤回归简历#
- class sklearn.linear_model.LogisticRegressionCV(*, Cs=10, fit_intercept=True, cv=None, dual=False, penalty='l2', scoring=None, solver='lbfgs', tol=0.0001, max_iter=100, class_weight=None, n_jobs=None, verbose=0, refit=True, intercept_scaling=1.0, multi_class='deprecated', random_state=None, l1_ratios=None)[源代码]#
逻辑回归CV(又名logit,MaxEnt)分类器。
请参阅术语表条目 cross-validation estimator .
此类使用liblinear、newton-cg、sag或lbfgs优化器实现逻辑回归。newton-cg、sag和lbfgs求解器仅支持具有原始公式的L2正规化。Liblinear求解器支持L1和L2正规化,仅针对L2罚分采用二元公式。Elastic-Net惩罚仅由传奇解决程序支持。
对于网格,
Cs
价值观和l1_ratios
值时,交叉验证器选择最佳超参数StratifiedKFold
,但可以使用 cv 参数.“newton-cg”、“sag”、“saga”和“lbfgs”求解器可以热启动系数(请参阅 Glossary ).阅读更多的 User Guide .
- 参数:
- Csint或浮点数列表,默认=10
Cs中的每个值都描述了规则化强度的倒数。如果Cs为int,则以1 e-4和1 e4之间的对数标度选择Cs值的网格。与支持向量机一样,较小的值意味着更强的正规化。
- fit_intercept布尔,默认=True
指定是否为常数(又名偏差或拦截)应添加到决策功能中。
- cvint或交叉验证生成器,默认值=无
使用的默认交叉验证生成器是分层K折叠。如果提供了一个整数,那么它就是使用的折叠数。查看模块
sklearn.model_selection
可能的交叉验证对象列表的模块。在 0.22 版本发生变更:
cv
如果无从3倍更改为5倍,则默认值。- dual布尔,默认=假
双重(约束)或原始(正规化,另请参阅 this equation )配方。双公式仅针对具有Liblinear解算器的l2罚分实施。当n_samples > n_features时,首选dual=False。
- penalty' l1 ',' elasticnet '},默认=' l2 '
明确处罚规范:
'l2'
:添加L2处罚条款(默认使用);'l1'
:添加L1处罚条款;'elasticnet'
:增加L1和L2处罚条款。
警告
Some penalties may not work with some solvers. See the parameter
solver
below, to know the compatibility between the penalty and solver.- scoring字符串或可调用,默认=无
字符串(请参阅 的 scoring 参数:定义模型评估规则 )或具有签名的记分器可调用对象/函数
scorer(estimator, X, y)
.有关可以使用的评分函数列表,请查看sklearn.metrics
.使用的默认评分选项是“准确性”。- solver' lbfgs '、'、' newton-cg '、'、' sag '、'、'、' 默认=' lbfgs '
用于优化问题的算法。默认为“lbfsgs”。要选择求解器,您可能需要考虑以下方面:
对于小型数据集,“liblinear”是一个不错的选择,而“sag”和“saga”对于大型数据集来说速度更快;
对于多类问题,除了“liblinear”之外的所有求解器都最小化了全部多项式损失;
'liblinear' might be slower in
LogisticRegressionCV
because it does not handle warm-starting.“liblinear”默认情况下只能处理二进制分类。要对多类设置应用one-versus-rest方案,可以使用
OneVsRestClassifier
.“newton-spoky”是一个不错的选择
n_samples
>>n_features * n_classes
,尤其是具有罕见类别的一热编码类别特征。请注意,此求解器的内存使用具有二次依赖性n_features * n_classes
因为它显式计算完整的海森矩阵。
警告
算法的选择取决于所选择的惩罚和(多项)多类支持:
求解器
处罚
多项多类
“lbfgs”
“l2”
是的
“自由线性”
“l1”、“l2”
没有
“newton-cg”
“l2”
是的
“牛顿-托基”
“l2”,
没有
“sag”
“l2”,
是的
“传奇”
“elasticnet”、“l1”、“l2”
是的
备注
“sag”和“saga”的快速收敛仅在规模大致相同的功能上才能保证。您可以使用来自的缩放器预处理数据
sklearn.preprocessing
.Added in version 0.17: 随机平均梯度下降解算器。
Added in version 0.19: SAGA求解器。
Added in version 1.2: 牛顿-不稳定的求解器。
- tolfloat,默认= 1 e-4
停止标准的容忍度。
- max_iterint,默认=100
优化算法的最大迭代次数。
- class_weightdict或“balanced”,默认=无
与形式中的类关联的权重
{class_label: weight}
.如果没有给出,所有类别的权重都应该为一。“平衡”模式使用y值自动调整与输入数据中的类别频率成反比例的权重,
n_samples / (n_classes * np.bincount(y))
.请注意,如果指定了sample_weight,这些权重将与sample_weight相乘(通过fit方法传递)。
Added in version 0.17: class_weight == 'balanced'
- n_jobsint,默认=无
Number of CPU cores used during the cross-validation loop.
None
means 1 unless in ajoblib.parallel_backend
context.-1
means using all processors. See Glossary for more details.- verboseint,默认=0
对于“liblinar”、“sag”和“lbfgs”求解器将verbose设置为任何正值,以表示详细。
- refit布尔,默认=True
如果设置为True,则对所有折叠的分数取平均值,并采用对应于最佳分数的系数和C,并使用这些参数进行最终改装。否则,对应于跨折叠的最佳分数的系数、截距和C被平均。
- intercept_scalingfloat,默认=1
仅当使用求解器“liblinear”并且self.fit_intercept设置为True时才有用。在这种情况下,x变成 [x, self.intercept_scaling] ,即具有等于intercept_scaling的常数值的“合成”特征被附加到实例载体。拦截变成
intercept_scaling * synthetic_feature_weight
.注意!合成特征权重与所有其他特征一样经历l1/l2正规化。为了减轻规则化对合成特征权重(从而对拦截)的影响,必须增加intersection_scaling。
- multi_class' Auto,' ovr ',','跨国公司'},默认='自动'
如果选择的选项是“ovr”,那么二进制问题适合每个标签。对于“多项”,最小化的损失是整个概率分布的多项损失, even when the data is binary .当求解器=“liblinear”时,“多项”不可用。如果数据是二进制的,或者如果solver =' liblinear ',则“Auto”选择“ovr”,否则选择“multomial”。
Added in version 0.18: “多项”情况的随机平均梯度下降求解器。
在 0.22 版本发生变更: 0.22中,默认值从“ovr”更改为“Auto”。
自 1.5 版本弃用:
multi_class
在1.5版中已被弃用,并将在1.7版中删除。从那时起,推荐的“多项”将始终用于n_classes >= 3
.不支持“多项”的求解器将引发错误。使用sklearn.multiclass.OneVsRestClassifier(LogisticRegressionCV())
如果你还想使用OVR。- random_stateint,RandomState实例,默认=无
时使用
solver='sag'
、“saga”或“liblinear”来洗牌数据。请注意,这仅适用于求解器,而不适用于交叉验证生成器。看到 Glossary 有关详细信息- l1_ratios浮动列表,默认=无
Elastic-Net混合参数列表,带有
0 <= l1_ratio <= 1
.仅在以下情况下使用penalty='elasticnet'
.值为0相当于使用penalty='l2'
,而1相当于使用penalty='l1'
.为0 < l1_ratio <1
,点球是L1和L2的组合。
- 属性:
- classes_形状的nd数组(n_classes,)
分类器已知的类标签列表。
- coef_形状的nd数组(1,n_features)或(n_classes,n_features)
决策函数中特征的系数。
coef_
当给定问题是二元问题时,形状为(1,n_features)。- intercept_形状为(1,)或(n_classes,)的nd数组
拦截(又名偏差)添加到决策功能中。
If
fit_intercept
is set to False, the intercept is set to zero.intercept_
is of shape(1,) when the problem is binary.- Cs_形状的nd数组(n_cs)
C数组,即用于交叉验证的正规化参数值的倒数。
- l1_ratios_形状的ndarray(n_l1_ratios)
用于交叉验证的l1_ratio数组。如果未使用l1_ratio(即惩罚不是“elasticnet”),则将其设置为
[None]
- coefs_paths_nd形状数组(n_folds,n_cs,n_features)或 (n_folds,n_cs,n_features + 1)
以类作为密钥,以及在对相应类进行OvR后跨每个折叠交叉验证期间获得的系数路径作为值。如果“multi_Class”选项设置为“multomial”,则coefs_paths是与每个类别对应的系数。每个Dict值都有形状
(n_folds, n_cs, n_features)
或(n_folds, n_cs, n_features + 1)
取决于拦截是否适合。如果penalty='elasticnet'
,形状是(n_folds, n_cs, n_l1_ratios_, n_features)
或(n_folds, n_cs, n_l1_ratios_, n_features + 1)
.- scores_dict
以类作为关键字,并将值作为在对相应类进行OvR后交叉验证每个折叠期间获得的分数网格。如果给出的“multi_Class”选项是“多项”,那么所有类中都会重复相同的分数,因为这是多项类。每个Dict值都有形状
(n_folds, n_cs)
或(n_folds, n_cs, n_l1_ratios)
如果penalty='elasticnet'
.- C_形状的ndarray(n_classes,)或(n_classes - 1,)
映射到每个班级的最佳分数的C数组。如果refit设置为False,那么对于每个类别,最佳C是与每个折叠的最佳分数相对应的C的平均值。
C_
当问题是二元问题时,形状为(n_classes,)。- l1_ratio_形状的ndarray(n_classes,)或(n_classes - 1,)
l1_ratio数组,映射到每个班级的最佳分数。如果refit设置为False,那么对于每个类别,最佳l1_ratio是与每个折叠的最佳分数相对应的l1_ratio的平均值。
l1_ratio_
当问题是二元问题时,形状为(n_classes,)。- n_iter_形状的nd数组(n_classes,n_folds,n_cs)或(1,n_folds,n_cs)
所有类、折叠和C的实际迭代次数。在二元或多项情况下,第一维度等于1。如果
penalty='elasticnet'
,形状是(n_classes, n_folds, n_cs, n_l1_ratios)
或(1, n_folds, n_cs, n_l1_ratios)
.- n_features_in_int
期间看到的功能数量 fit .
Added in version 0.24.
- feature_names_in_ :nd形状数组 (
n_features_in_
,)nd数组形状( Names of features seen during fit. Defined only when
X
has feature names that are all strings.Added in version 1.0.
参见
LogisticRegression
无需调整超参数的逻辑回归
C
.
示例
>>> from sklearn.datasets import load_iris >>> from sklearn.linear_model import LogisticRegressionCV >>> X, y = load_iris(return_X_y=True) >>> clf = LogisticRegressionCV(cv=5, random_state=0).fit(X, y) >>> clf.predict(X[:2, :]) array([0, 0]) >>> clf.predict_proba(X[:2, :]).shape (2, 3) >>> clf.score(X, y) 0.98...
- decision_function(X)[源代码]#
预测样本的置信度分数。
样本的置信度分数与该样本到超平面的带符号距离成正比。
- 参数:
- X形状(n_samples,n_features)的{类数组,稀疏矩阵}
我们想要获取其置信度分数的数据矩阵。
- 返回:
- scores形状的ndarray(n_samples,)或(n_samples,n_classes)
信心分数
(n_samples, n_classes)
组合.在二元情况下,置信度得分self.classes_[1]
其中>0意味着这个类将被预测。
- densify()[源代码]#
将系数矩阵转换为密集数组格式。
转换
coef_
member(back)to a numpy.ndarray.这是coef_
并且是装配所需的,因此仅需要对之前已精简的模型调用此方法;否则,这是不操作的。- 返回:
- 自我
拟合估计量。
- fit(X, y, sample_weight=None, **params)[源代码]#
根据给定的训练数据对模型进行匹配。
- 参数:
- X形状(n_samples,n_features)的{类数组,稀疏矩阵}
训练载体,在哪里
n_samples
是样本数量和n_features
是功能的数量。- y形状类似阵列(n_samples,)
相对于X的目标载体。
- sample_weightarray-like of shape(n_samples,)default=None
分配给各个样本的权重数组。如果未提供,则给予每个样本单位重量。
- **paramsdict
要传递给基础拆分器和记分器的参数。
Added in version 1.4.
- 返回:
- self对象
适合LogisticRegressionCV估计器。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请检查 User Guide 关于路由机制如何工作。
Added in version 1.4.
- 返回:
- routingMetadataRouter
A
MetadataRouter
封装路由信息。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数:
- deep布尔,默认=True
如果为True,将返回此估计量和包含的作为估计量的子对象的参数。
- 返回:
- paramsdict
参数名称映射到其值。
- predict(X)[源代码]#
预测X中样本的类别标签。
- 参数:
- X形状(n_samples,n_features)的{类数组,稀疏矩阵}
我们想要获取预测的数据矩阵。
- 返回:
- y_pred形状的nd数组(n_samples,)
包含每个样本的类标签的载体。
- predict_log_proba(X)[源代码]#
预测概率估计的对数。
所有类别的返回估计都按类别标签排序。
- 参数:
- X形状类似阵列(n_samples,n_features)
要评分的向量,其中
n_samples
是样本数量和n_features
是功能的数量。
- 返回:
- T形状类似阵列(n_samples,n_classes)
返回模型中每个类的样本的log概率,其中类按其所在位置排序
self.classes_
.
- predict_proba(X)[源代码]#
概率估计。
所有类别的返回估计都按类别标签排序。
对于多_类问题,如果multi_类设置为“多项”,则使用softmax函数来查找每个类的预测概率。否则使用一对休息的方法,即使用逻辑函数计算每个类别的概率,假设它为正,并在所有类别中对这些值进行标准化。
- 参数:
- X形状类似阵列(n_samples,n_features)
要评分的向量,其中
n_samples
是样本数量和n_features
是功能的数量。
- 返回:
- T形状类似阵列(n_samples,n_classes)
返回模型中每个类的样本概率,其中类按其所在位置排序
self.classes_
.
- score(X, y, sample_weight=None, **score_params)[源代码]#
使用评分
scoring
给定测试数据和标签上的选项。- 参数:
- X形状类似阵列(n_samples,n_features)
测试样本。
- y形状类似阵列(n_samples,)
真正的标签X。
- sample_weight形状类似数组(n_samples,),默认=无
样本重量。
- **score_paramsdict
要传递给
score
潜在得分者的方法。Added in version 1.4.
- 返回:
- score浮子
自我评分。预测(X)w.rt. y.
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LogisticRegressionCV [源代码]#
请求元数据传递给
fit
法请注意,此方法仅适用于以下情况
enable_metadata_routing=True
(见sklearn.set_config
).请参阅 User Guide 关于路由机制如何工作。The options for each parameter are:
True
:元数据被请求并传递给fit
如果提供的话。如果未提供元数据,则会忽略请求。False
:未请求元数据,元估计器不会将其传递给fit
.None
:不请求元数据,如果用户提供元估计器,则元估计器将引发错误。str
:元数据应通过此给定别名而不是原始名称传递给元估计器。
默认 (
sklearn.utils.metadata_routing.UNCHANGED
)保留现有请求。这允许您更改某些参数的请求,而不是其他参数。Added in version 1.3.
备注
只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在
Pipeline
.否则就没有效果了。- 参数:
- sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged
元数据路由
sample_weight
参数fit
.
- 返回:
- self对象
更新的对象。
- set_params(**params)[源代码]#
设置此估计器的参数。
该方法适用于简单估计器以及嵌套对象(例如
Pipeline
).后者具有以下形式的参数<component>__<parameter>
以便可以更新嵌套对象的每个组件。- 参数:
- **paramsdict
估计参数。
- 返回:
- self估计器实例
估计实例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LogisticRegressionCV [源代码]#
请求元数据传递给
score
法请注意,此方法仅适用于以下情况
enable_metadata_routing=True
(见sklearn.set_config
).请参阅 User Guide 关于路由机制如何工作。The options for each parameter are:
True
:元数据被请求并传递给score
如果提供的话。如果未提供元数据,则会忽略请求。False
:未请求元数据,元估计器不会将其传递给score
.None
:不请求元数据,如果用户提供元估计器,则元估计器将引发错误。str
:元数据应通过此给定别名而不是原始名称传递给元估计器。
默认 (
sklearn.utils.metadata_routing.UNCHANGED
)保留现有请求。这允许您更改某些参数的请求,而不是其他参数。Added in version 1.3.
备注
只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在
Pipeline
.否则就没有效果了。- 参数:
- sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged
元数据路由
sample_weight
参数score
.
- 返回:
- self对象
更新的对象。
- sparsify()[源代码]#
将系数矩阵转换为稀疏格式。
转换
coef_
scipy.sparse矩阵的成员,对于L1正规化模型,该矩阵比通常的numpy. ndray表示具有更高的内存和存储效率。的
intercept_
成员未转换。- 返回:
- 自我
拟合估计量。
注意到
对于非稀疏模型,即当零不多时
coef_
,这实际上可能 increase 内存使用情况,因此请谨慎使用此方法。经验法则是零元素的数量,可以用(coef_ == 0).sum()
,必须超过50%才能提供显着的好处。调用此方法后,使用partial_fit方法(如果有的话)的进一步匹配将无法工作,直到调用denssify。