机器学习测试笔记(17)——线性回归函数(上)

简介: 机器学习测试笔记(17)——线性回归函数(上)

sklearn.linear_model.LinearRegression


介绍

普通最小二乘线性回归。线性回归拟合系数为w=(w1,,wp)的线性模型,以最小化数据集中观测目标和线性近似预测目标之间差的平方和。


函数表达式

sklearn.linear_model.LinearRegression(*,fit_intercept=True, normalize=False, copy_X=True, n_jobs=None, positive=False)


参数

参数

解释

fit_intercept

bool,默认=True,是否计算该模型的截距。如果使用中心化的数据,可以考虑设置为False,不考虑截距。注意这里是考虑,一般还是要考虑截距

normalize

bool,默认=False,当fit_intercept设置为false的时候,这个参数会被自动忽略。如果为True,回归器会标准化输入参数:减去平均值,并且除以相应的二范数。当然啦,在这里还是建议将标准化的工作放在训练模型之前。通过设置sklearn.preprocessing.StandardScaler来实现,而在此处设置为false

copy_X

bool,默认=True, 否则X会被改写

n_jobs

int,默认=None,CPU个数,int  默认为1. -1时默认使用全部CPU

positive

bool,  默认=False,映射到其值。如果设置为True,则强制系数为正。只有密集阵列才支持此选项。版本0.24中的新功能。


属性

属性

解释

coef_

array of shape (n_features, ) or (n_targets, n_features)。训练后的输入端模型系数,如果label有两个,即y值有两列。那么是一个2Darray

rank_

int。矩阵X的秩。仅当X稠密时可用

singular_

array of shape (min(X, y),) X的奇异值。仅当X密集时可用。线性模型中与形状无关的浮点数或数组。如果fit_intercept=False,则设置为0.0

intercept_

float or array of shape (n_targets,).线性模型中的独立项(截距)。如果fit_intercept=False,则设置为0.0


方法

fit()

fit(X,y,sample_weight=None)

拟合线性模型

输入

X

array, 稀疏矩阵 [n_samples,n_features]

y

array [n_samples, n_targets]

sample_weight

权重 array [n_samples]。在版本0.17后添加了sample_weight

输出

self

返回self的实例


get_params()

get_params(deep=True)

获取此估计器的参数

输入

deep

bool, 默认=True如果为True,则将返回此估计器的参数以及作为估计器的包含子对象

输出

dict

映射到其值的参数名称。


predict()

predict(X)

用线性模型预测。

输入

X

array-like or sparse matrix, shape (n_samples, n_features)。样本

输出

C

array, shape (n_samples,)返回预测值。


score ()

score (X,  y,  sample_weight=None)

返回给定测试数据和标签的平均精确度。在多标签分类中,这是子集精度,这是一个苛刻的度量标准,因为您需要为每个样本准确地预测每个标签集。

输入

X

array-like, shape = (n_samples,  n_features)。测试样本

y 

array-like, shape = (n_samples)  or (n_samples, n_outputs)。真的X标签。

sample_weight

array-like, shape = [n_samples],  optional。测试权重

输出

score 

floatR2平均精度self.predict(X) wrt. y.


注意:在回归器上调用R2 score时使用的score使用版本0.23中的multioutput='uniform_average'与r2_score的默认值保持一致。这会影响所有多输出回归器(除了多输出回归器)的得分方法。


set_params (**params)

set_params ( **params )

设置此估算器的参数。该方法适用于简单的估计器以及嵌套对象(如管道)后者具有<component>  __ <parameter>形式的参数,以便可以更新嵌套对象的每个组件。

输入

**params

dict估计器参数。

输出

self

估计器实例


sklearn.linear_model.LogisticRegression


介绍

拟合线性模型。

Logistic回归(又名logitMaxEnt)分类器。

在多类情况下,如果"multi_class"选项设置为"ovr",则训练算法使用one vs restovr)方案;如果"multi_class"选项设置为"多项式",则使用交叉熵损失。(目前,"多项式"选项仅由"lbfgs""sag""saga""newton-cg"解算器支持。)


此类使用"liblinear""newton cg""sag""saga""lbfgs”解算器实现正则化logistic回归。请注意,默认情况下应用正则化。它可以处理密集和稀疏的输入。使用C有序数组或包含64位浮点的CSR矩阵以获得最佳性能;任何其他输入格式都将被转换(和复制)。


"newton cg""sag""lbfgs”解算器只支持L2正则化和原始公式,或者不支持正则化。"liblinear"解算器支持L1L2正则化,并且仅对L2惩罚使用对偶公式。弹性网正则化仅由"saga"解算器支持。


函数表达式

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)

参数

参数

解释

alpha

{float, ndarray of shape (n_targets,)}, 默认=1.0。正则化强度;必须是正浮点数。正则化改进了问题的条件,减少了估计的方差。值越大,正则化越强。Alpha对应于其他线性模型中的1/(2C),如logisticsregressionLinearSVC。如果传递了数组,则假定惩罚是特定于目标的。因此它们在数量上必须一致。

dual

bool, 默认=True双重或原始公式。双公式只适用于使用L2惩罚的线性求解器。当样本数> 特征数时,更推荐False

tol

浮点数, 默认: 1e-4。两次迭代误差停止阈值。

C

浮点数, 默认: 1.0。正则化强度的逆;必须是正浮点。像支持向量机一样,较小的值指定更强的正则化。

fit_intercept

布尔值, 默认: True。指定是否应将常数(A.K.偏差或截距)添加到决策函数中。建议设置 fit_intercept=True 并增大 intercept_scaling

intercept_scaling

浮点数, 默认 1.只有在使用求解器'Libliear'Self.fit_intercept截距被设置为true时才有用。在这种情况下,x变成[xself.intercept_scaling],即,在实例向量中附加一个具有常数值等于intercept_scaling'合成'特征。截距变为截距标度*综合特征权重.注意!合成特征权重与所有其他特征一样受L1/L2正则化的影响。为了减少正则化对合成特征权重的影响,因此intercept_scaling  必须增大。

class_weight

dict or 'balanced', 默认: None。与字典形式{类标签:权重}相关联的权重。如果没有给出,所有的类都设置为权重1"平衡"模式使用y的值以n_.samples/(n_classes*np.bincount(y))的形式自动调整与输入数据中的类频率成反比的权重。

random_state

int,随机状态实例或无,可选,默认:无。伪随机数生成器的种子,用于清洗数据。如果intrandom_state是随机数生成器使用的种子;如果randomstate实例,random_state是随机数发生器;如果没有,随机数生成器使用的np.randomrandomstate实例。当求解器="sag""linear"时使用。

solver

{'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'},注意,'洼地''传奇'的快速收敛仅保证具有近似相同尺度的特征。您可以用SkReln.PrimeCurror的标尺对数据进行预处理。

max_iter

int, 默认: 100。仅适用于'newton-cg''sag''lbfgs'求解器。求解器收敛的最大迭代次数。

multi_class

str, {'ovr', 'multinomial'}, 默认: 'ovr'。多选项可以是'ovr''multinomial'。如果选择的选项是'ovr',那么每个标签都适用于二进制问题。否则损失最小的是多项式损失拟合整个概率分布。不适用于线性求解器。

verbose

int, 默认: 0。冗长0:不输出训练过程,静默输出;1:类似静默输出,只输出简洁信息;>1:对每个子模型都输出详细信息

n_jobs

int, 默认: 1。如果multi_class  'ovr',代表在类间并行化时使用的CPU核数。当将'solver'设置为'libli.'时,忽略此参数,而不管是否指定了'multi_class'。如果给定值为-1,则使用所有的核。


属性

属性

解释

coef_

决策函数中的特征系数,即权重系数。当给定的问题是二进制时,coef_形状是(1n-特征)

intercept_

截距(a.k.a. bias)添加到决策函数中,即B值。如果fit_intercept截距设置为false,则截距设置为零。当问题是二进制时,截距是(1)的形状。

n_iter_

所有类的实际迭代次数。如果是二进制或多项式,它只返回元素1。对于线性求解器,只给出了所有类的最大迭代次数。


方法

decision_function()

decision_function(X)

预测样本的置信度得分。

样本的置信度得分是该样本到超平面的有符号距离。

输入

X

类数组或稀疏矩阵,形状(n个样本,n个特征).样品。

输出

self

数组,形状=n_samples,)如果n_classes == 2个其他(n_samples, n_classes)每个(sample, class)组合的置信度得分。在二元情况下,对self.classes_[1]  其中>0表示该类将被预测。


densify()

densify(X)

将系数矩阵转换为密集数组格式。将coef_成员(back)转换为numpy.ndarray. 这是coef_的默认格式,是拟合所必需的,因此仅在以前已稀疏的模型上需要调用此方法;否则,这是不允许的。

输出

self

拟合估计量。


fit()

fit(X,y,sample_weight=None)

根据给定的训练数据对模型进行拟合。

输入

X

{array-like, sparse matrix} of shape (n_samples, n_features)

array, 训练向量,其中n_samples是样本数,n_features是特征数。

y

array [n_samples, n_targets] 。相对于X的目标向量。

sample_weight

array-like of shape (n_samples,) 默认=None

分配给单个样本的权重数组。如果没有提供,则每个样品都有单位权重。

版本0.17中的新功能:对LogisticRegression的示例重量支持。

输出

self

拟合估计量。


注意:SAGA解算器支持float64float32位数组。


get_params()

get_params(deep=True)

获取此估计器的参数

输入

deep

bool, 默认=True如果为True,则将返回此估计器的参数以及作为估计器的包含子对象

输出

dict

映射到其值的参数名称。


predict()

predict(X)

用线性模型预测。

输入

X

array-like or sparse matrix, shape (n_samples, n_features)。样本

输出

C

array, shape (n_samples,)返回预测值。


predict_log_proba()

predict_log_proba(X)

预测概率估计的对数。所有类的返回估计值按类的标签排序。

输入

X

array-like of shape (n_samples, n_features)

要评分的向量,其中n_samples是样本数,n_features是特征数。

输出

T

array-like of shape (n_samples, n_classes)

返回模型中每个类的样本的对数概率,其中类按其在模型中的顺序排列self.classes_.


predict_proba()

predict_proba(X)

概率估计。所有类的返回估计值按类的标签排序。对于一个多类问题,如果多类被设置为“多项式”,则使用softmax函数来寻找每个类的预测概率。否则使用一对一方法,即使用逻辑函数计算每个类的概率,假设它是正的。并在所有类中规范化这些值。

输入

X

array-like of shape (n_samples, n_features)

要评分的向量,其中n_samples是样本数,n_features是特征数。

输出

T

array-like of shape (n_samples, n_classes)

返回模型中每个类的样本概率,其中类按其在模型中的顺序排列self.classes_.


score ()

score (X,  y,  sample_weight=None)

返回给定测试数据和标签的平均精确度。在多标签分类中,这是子集精度,这是一个苛刻的度量标准,因为您需要为每个样本准确地预测每个标签集。

输入

X

array-like, shape = (n_samples,  n_features)。测试样本

y 

array-like, shape = (n_samples)  or (n_samples, n_outputs)。真的X标签。

sample_weight

array-like, shape = [n_samples],  optional。测试权重

输出

score 

floatR2平均精度self.predict(X) wrt. y.


set_params ()

set_params ( **params )

设置此估算器的参数。该方法适用于简单的估计器以及嵌套对象(如管道)后者具有<component>  __ <parameter>形式的参数,以便可以更新嵌套对象的每个组件。

输入

**params

dict估计器参数。

输出

self

估计器实例

sparsify()

sparsify()

将系数矩阵转换为稀疏格式。将coef_成员转换为稀疏的矩阵。对于L1正则化模型,它可以比平常numpy.ndarray描述更节省内存和存储。intercept_没有转化。

输出

self

拟合估计量


注意:对于非稀疏模型,即coef_中的零不多时,这实际上可能会增加内存使用,因此请小心使用此方法。经验法则是,可以用(coef_ == 0).sum()计算的零元素数必须大于50%,这样才能提供显著的好处。调用此方法后,在调用densify之前,使用partial_fit方法(如果有)进行进一步拟合将不起作用。

sklearn.linear_model.Ridge


介绍

线性最小二乘与l2正则化。最小化目标函数:

||y - Xw||2_2+ alpha * ||w||2_2

该模型解决了一个回归模型,其中损失函数是线性最小二乘函数,正则化由l2范数给出。也称为岭回归或Tikhonov正则化。该估计器内置了对多元回归的支持(即当y是一个二维数组(n_samples, n_targets))


函数表达式

sklearn.linear_model.Ridge(alpha=1.0,fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001,solver='auto')


参数

属性

解释

alpha

{float, ndarray of shape (n_targets,)}, 默认=1.0

正则化强度;必须是正浮点数。正则化改进了问题的条件,减少了估计的方差。值越大,正则化越强。Alpha对应于其他线性模型中的1/(2C),如logisticsregressionLinearSVC。如果传递了数组,则假定惩罚是特定于目标的。因此它们在数量上必须一致。

fit_intercept

bool, 默认=True。是否适合此模型的截距。如果设置为false,则在计算中不使用截距(即Xy应居中)。

normalize

bool, 默认=False。当fit_intercept设置为False时,将忽略此参数。如果为真,回归系数X将在回归前通过减去平均值并除以l2范数进行归一化。如果您希望标准化,请在对normalize=False的估计器调用fit之前使用StandardScaler

copy_X

bool, 默认=True。如果为True,则复制X;否则,可能会覆盖X

max_iter

max_iterint, 默认=None. 共轭梯度解算器的最大迭代次数。对于'sparse_cg''lsqr'解算器,默认值由scipy.sparse.linalg. 对于'sag'解算器,默认值为1000

tol

float, 默认=1e-3

指定模型求解最优化问题的算法。

solver

{'auto', 'svd', 'cholesky', 'lsqr', 'sparse_cg', 'sag', 'saga'}, 默认='auto'

在计算例程中使用的解算器:

'auto'根据数据类型自动选择解算器。

'svd'使用X的奇异值分解来计算岭系数。对于奇异矩阵,比'cholesky'更稳定。

'cholesky'使用标准scipy.linalg.solve解决方案函数以获得闭式解。

'sparse_cg'使用共轭梯度解算器,如中所示scipy.sparse.linalg.cg。作为一种迭代算法,该求解器比'cholesky'更适用于大规模数据(可以设置tolmax iter)

'lsqr'使用专用的正则化最小二乘例程scipy.sparse.linalg.lsqr。它是最快的,并且使用迭代过程。

'sag'使用随机平均梯度下降,'sag'使用改进的无偏版本saga。这两种方法也都使用迭代过程,并且当n_samplesn_features都很大时,通常比其他解算器更快。请注意,'sag''saga'快速收敛仅在具有近似相同比例的特征上得到保证。您可以使用来自的定标器对数据进行预处理sklearn.预处理.

最后五个解算器都支持密集和稀疏数据。但是,当fit_intercept为真时,只有'sag''sparse_cg'支持稀疏输入。

新版本0.17:随机平均梯度下降解算器。

版本0.19中的新功能:SAGA solver

random_state

int, RandomState instance, 默认=None

solver=='sag''saga'时用于洗牌数据。

版本0.17中的新功能:支持随机平均梯度的随机状态。

 

属性

属性

解释

coef_

ndarray of shape (n_features,) or (n_targets, n_features)

权重向量。

intercept_

float or ndarray of shape (n_targets,)。决策函数中的独立项。如果fit_intercept = False,则设置为0.0

n_iter_

None or ndarray of shape (n_targets,)。每个目标的实际迭代次数。仅适用于saglsqr解算器。其他解算器将不返回任何值。版本0.17中的新功能。


方法

fit()

fit(X,y,sample_weight=None)

拟合岭回归模型。

输入

X

{ndarray, sparse matrix} of shape (n_samples, n_features)

训练数据

y

ndarray of shape (n_samples,) or (n_samples, n_targets)。目标值

sample_weight

每个样品的单独权重。如果给定一个float,每个样品的权重都是一样的。

输出

self

返回self的实例


get_params()

get_params(deep=True)

获取此估计器的参数

输入

deep

bool, 默认=True如果为True,则将返回此估计器的参数以及作为估计器的包含子对象

输出

dict

映射到其值的参数名称。


predict()

predict(X)

用线性模型预测。

输入

X

array-like or sparse matrix, shape (n_samples, n_features)。样本

输出

C

array, shape (n_samples,)返回预测值。


score ()

score (X,  y,  sample_weight=None)

返回给定测试数据和标签的平均精确度。在多标签分类中,这是子集精度,这是一个苛刻的度量标准,因为您需要为每个样本准确地预测每个标签集。

输入

X

array-like, shape = (n_samples,  n_features)。测试样本

y 

array-like, shape = (n_samples)  or (n_samples, n_outputs)。真的X标签。

sample_weight

array-like, shape = [n_samples],  optional。测试权重

输出

score 

floatR2平均精度self.predict(X) wrt. y.


注意:在回归器上调用R2 score时使用的score使用版本0.23中的multioutput='uniform_average'与r2_score的默认值保持一致。这会影响所有多输出回归器(除了多输出回归器)的得分方法。

目录
相关文章
|
9天前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
45 2
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
5天前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
|
9天前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
21 1
|
9天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
18 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
9天前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
29 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
9天前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
75 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
9天前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
20 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
9天前
|
测试技术 数据安全/隐私保护 Python
自动化测试项目实战笔记(四):测试用户登录(账号密码错误,成功,出现弹框等情况)
本文介绍了使用Selenium进行自动化测试时如何测试用户登录的不同情况,包括账号密码错误、登录成功以及处理登录时出现的弹框,并提供了相应的Python代码实现。
22 0
自动化测试项目实战笔记(四):测试用户登录(账号密码错误,成功,出现弹框等情况)
|
5月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
227 14
|
5月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)