一:梯度下降:
梯度下降本质上是对极小值的无限逼近。先求得梯度,再取其反方向,以定步长在此方向上走一步,下次计算则从此点开始,一步步接近极小值。需要注意的是步长的取值,如果过小,则需要多次迭代,耗费大量时间才能取得极小值;如果过大,则可能难以取得较为接近极小值的点,在极小值两边来回跳跃,无法接近极小值。
而步长的取值往往于梯度有关,如果梯度的值较大,则步长可以取大的值,如果梯度较小,则步长应取较小值。
优势:高效,优化途径多
劣势:需要一些超参数:regularization(正则化)参数以及number of iterations(迭代次数),对feature scalling(特征缩放)敏感。
根据官方网站的代码,使用了SGDClassifier分类器,进行了尝试。
使用make_blobs创建数据测试。
注:
前两个 loss functions(损失函数)是懒惰的,如果一个例子违反了 margin constraint(边界约束),它们仅更新模型的参数, 这使得训练非常有效率,即使使用了 L2 penalty(惩罚)我们仍然可能得到稀疏的模型结果。
梯度下降需注意参数:
alpha:乘以正则化项的常数,默认0.0001。当被设置为‘optimal’时也被用于计算学习效率
fit_intercept:是否该截取截距,默认True。如果为‘False’则假定数据以及居中。
梯度下降常用方法:
fit(X,y,coef_init=None,intercept_init=None,sample_weight=None):拟合线性模型(训练)
X:{类似数组的稀疏矩阵},形式:(n_sanmples,n_features)。
y:类似数组,形式:(n_samples)。
sample_weight:数组样本,形式:(n_samples,),optional(可选),可以设定个别样本的权重,如果不设定,则默认相等。
predict(X):用于预测X样本中的标签(结果/分类)
X:{类似数组的稀疏矩阵},形式:[n_samples,n_features]。
score(X,y,samples_weight=None)::(与上方相同)用于返回测试数据和标签(结果)的平均精度。
二:逻辑回归(逻辑斯特增长模型):
逻辑回归实际为一种分类的线性模型。如图,值域为0~1。如果需要解决非线性问题,与支持向量机SVM的思路相同,即将特征映射到高维来解决问题。因此,也可用梯度下降来求解。
LogisticRegression中有这些参数需要注意:
penalty:'l1','l2'使用l1正则化,还是l2,默认l2
tol:精度为多少时可以停止计算,默认1e-4(十的负四次方)
C:C越大,正则化因子所占比例越小,C越小,正则化因子所占比例越大,默认1.0
solver:使用什么方法,默认liblinear(线性算法)。newton-cg,lbfgs,liblinear(对小数据集表现较好,大数据集建议使用sag及saga),sag(随即平均梯度下降算法Stochastic Average Gradient desqent solver),saga。
max_iter:最大迭代次数,默认100。
LogisticRegression常用方法:
fit(X,y,sample_weight=None):用于拟合模型(训练)
X:{类似数组的稀疏矩阵},形式:(n_samples,n_features)。
y:类似数组,形式:(n_samples)。
sample_weight:数组样本,形式:(n_samples,),optional(可选),可以设定个别样本的权重,如果不设定,则默认相等。
predict(X):用于预测X样本的标签(结果/分类)
X:同上。
返回C:数组,形式:[n_samples]
predict_proba(X):用于预测为对应标签的概率
X:同上。
返回一个n行k列的数组,n对应样本数量,k为可能的标签(结果/分类),每一行的结果之和应为1
到此这篇梯度下降回归(梯度下降回归 sklearn)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/22171.html