sklearn输出模型参数_sklearn-learn机器学习逻辑回归0116-020

sklearn输出模型参数_sklearn-learn机器学习逻辑回归0116-
020
⽬录
题前引⼊
逻辑回归原理
Logistic回归sklearn参数
逻辑回归乳腺癌检测
网络家庭模型优化
题前引⼊
民主革命假设有⼀场⾜球赛,有两⽀球队的所有出场球员信息、历史交锋成绩、⽐赛 时间、主客场、裁判和天⽓等信息,根据这些信息预测球队的输赢。 假设⽐赛结果记 为 y,赢球标记为1,输球标记为 0,这个就是典型的⼆元分类问题,可以⽤逻辑回归算法来解决。
逻辑回归原理
逻辑回归算法的输出是个离散值,这是与线性回归算法输出是连续值
逻辑回归实属⼴义线性模型,线性回归预测函数可简单表⽰为:
,⽽逻辑回归预测函数需要做⼀个函数转换:
,其中
,通过
将线性回归原本的值域
映射到[0,1],当取值⼤于临界值时为⼀类,⼩于临界值时为另⼀类达到0-1分类,
⼀般使⽤sigmoid函数:即
sigmoid有⼀个性质:当
时,
逻辑回归的假设函数为:
其中,X是样本输出,
是模型输出,
是求解的模型参数
输出在[0, 1]之间 。 然后选择⼀个基准值,如 0.5, 如果算出来的预测值⼤于 0.5,就认为其预测值为1,反之则其预测值为 0。
Logistic回归sklearn参数
逻辑回归乳腺癌检测
使⽤逻辑回归算法解决乳腺癌检测问题,先采集肿瘤病灶造影图⽚,对图⽚进⾏分析,从图⽚中提取特征,再根据特征来训练模型。最终使⽤模型来检测新采集到的肿瘤病灶造影,以便判断肿瘤是良性的还是恶性的,这是个典型的⼆元分类问题。
from sklearn.datasets import  load_breast_cancer
cancer = load_breast_cancer()
X=cancer.data
y=cancer.target
print('data shape:{0};no.positive:{1};'减肥行为疗法
'no.negative: {2}'.format(X.shape,
y[y==1].shape[0],
y[y==0].shape[0]
))
print(cancer.data[0])
数据集中总共有 569 个样本, 每个样本有 30 个特征, 其中 357 个阳性(y=1)样本,212 个阴性(y=0)样本
这个数据集总共从病灶造影图⽚中提取了 以下 10 个关键属性:
del_selection import train_test_split
X_train,X_test,y_trian,y_test = train_test_split(X,y,test_size=0.2)
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train,y_trian)
train_score = model.score(X_train,y_trian)
test_score = model.score(X_test,y_test)
print('train score:{train_score:.6f};test score:{test_score:.6f}'.format(
train_score=train_score,test_score=test_score)
)
import numpy as np
y_pred = model.predict(X_test)
print('matchs:{0}/{1}'.format(np.equal(y_pred,y_test)
.shape[0],y_test.shape[0]))
总共 l 14 个测试样本,全部预测正确
y_pred_proda = model.predict_proba(X_test)
print('sample of predict probability:{0}'.format(y_pred_proda[0]))
y_pred_proda_0 = y_pred_proda[:,0]>0.1
result = y_pred_proda[y_pred_proda_0]
y_pred_proda_1 = result[:,0]>0.1
print(result[y_pred_proda_1])
使⽤ model.predict_proba()来计算概率, 同时出那些预测“ ⾃信度”低于 90% 的样本模型优化
使⽤ Pipeline 来增加多项式特征哈尔滨学院图书馆
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
def polynomial_model(degree=1,**kwargs):
polynomial_features=PolynomialFeatures(degree=degree,
include_bias=False)阳性
logistic_regression = LogisticRegression(**kwargs)
pipeline = Pipeline([("polynomial_features",polynomial_features),
("logistic_regression",logistic_regression)])
return pipeline
import  time
model = polynomial_model(degree=2,penalty='l1')
start = time.clock()
model.fit(X_train,y_trian)
cv_score = model.score(X_test,y_test)
print('elaspe:{0:.6f};'
'train_score:{1:0.6f};'
'cv_score:{2:.6f}'
.format(time.clock()-start,train_score,cv_score)
)
飘舞的碎布
L1 范数作为正则项, 可以实现参数的稀疏化,即⾃动帮助我们选 择出那些对模型有关联的特征,训练数据集评分和测试数据集评分都增加了
学习曲线是模型最有效的诊断⼯具之⼀,使⽤ L1=范数作为正则项能提⾼算法的准确性,通过学习曲线直观的观察

本文发布于:2024-09-23 17:22:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/53853.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:回归   逻辑   模型   预测   算法   线性   特征
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议