机器学习测试笔记(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的默认值保持一致。这会影响所有多输出回归器(除了多输出回归器)的得分方法。

目录
相关文章
|
21天前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的未来:AI与机器学习的融合
【9月更文挑战第29天】在软件测试领域,自动化测试一直是提高测试效率和质量的关键。随着人工智能(AI)和机器学习(ML)技术的飞速发展,它们正逐步渗透到自动化测试中,预示着一场测试革命的来临。本文将探讨AI和ML如何重塑自动化测试的未来,通过具体案例展示这些技术如何优化测试流程,提高测试覆盖率和准确性,以及它们对测试工程师角色的影响。
19 7
|
5天前
|
机器学习/深度学习 人工智能 数据挖掘
探索自动化测试的未来:AI与机器学习的融合
【9月更文挑战第29天】在软件测试领域,自动化测试一直是提高效率和准确性的关键。但随着技术的发展,特别是人工智能(AI)和机器学习(ML)的兴起,我们见证了一个新时代的到来——自动化测试的未来正逐渐被重新定义。本文将探讨AI和ML如何改变自动化测试的面貌,从智能测试脚本的生成到测试结果的深度分析,我们将一探究竟这些前沿技术是如何使测试流程更加智能化、高效化,并预测它们将如何塑造软件测试的未来趋势。
|
19天前
|
机器学习/深度学习 人工智能 测试技术
自动化测试的未来:AI与机器学习的融合之路
【9月更文挑战第15天】在软件测试领域,自动化一直被视为提高效率和精确度的关键。随着人工智能(AI)和机器学习(ML)技术的不断进步,它们已经开始改变自动化测试的面貌。本文将探讨AI和ML如何赋能自动化测试,提升测试用例的智能生成、优化测试流程,并预测未来趋势。我们将通过实际代码示例来揭示这些技术如何被集成到现有的测试框架中,以及开发人员如何利用它们来提高软件质量。
51 15
|
25天前
|
机器学习/深度学习 Python
训练集、测试集与验证集:机器学习模型评估的基石
在机器学习中,数据集通常被划分为训练集、验证集和测试集,以评估模型性能并调整参数。训练集用于拟合模型,验证集用于调整超参数和防止过拟合,测试集则用于评估最终模型性能。本文详细介绍了这三个集合的作用,并通过代码示例展示了如何进行数据集的划分。合理的划分有助于提升模型的泛化能力。
|
27天前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
27天前
|
机器学习/深度学习 人工智能 文字识别
AI计算机视觉笔记二十:PaddleOCR环境搭建及测试
OCR技术广泛应用于日常生活中,与人脸识别一样常见。PaddleOCR是一个基于飞桨的OCR工具库,具有超轻量级中文OCR模型,支持中英文数字组合、竖排及长文本识别。本文档详细介绍了PaddleOCR的学习过程,包括环境搭建、安装、样本标注及测试步骤。使用AutoDL云平台进行环境创建,并提供了详细的命令行操作指南,帮助用户顺利完成PaddleOCR的部署与测试。
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
105 7
Jmeter实现WebSocket协议的接口测试方法
|
23天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
101 3
快速上手|HTTP 接口功能自动化测试
|
23天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
下一篇
无影云桌面