python:机器学习(逻辑回归模型)(三)

逻辑回归算法
分类和预测算法的一种。通过历史数据的表现对未来结果发生的概率进行预测,使一种分类算法

原理:正太态分布在这里插入图片描述
函数原型在这里插入图片描述
Z:可以是任意数值,该数值可以是任何表达式计算出来的值

例:复习时常与考试通过的概率:
在这里插入图片描述
x=hours
y=pass
z=ax+b
复习的时常与通过的概率可以是线性的。但不是越长就一定过。
函数原型即为:
在这里插入图片描述
使用两组已知数据代入求解可得a和b,但是那一组代入可以求出最优解?

损失函数
最小化损失函数求解。
求损失最小得最优a和b
损失函数:|y-y1|或(y-y1)平方

为得到最佳的损失函数->梯度下降算法

在这里插入图片描述
右边为取值不均没能求得准确的ymin
每一个值的跨度称为学习率

逻辑回归训练过程
在这里插入图片描述
将所有x,y输入求w,b
计算值与实际值有区别时会调整学习率,达到预测值与误差最小

逻辑回归分类过程
在这里插入图片描述
代码实现获取最优解

# 加载数据
cancer_data =load_breast_cancer()
# 特征数据
feature_data=cancer_data.data
# 标签数据
label_data=cancer_data.target
# 数据分割
x_train, x_test, y_train, y_test=train_test_split(feature_data,label_data,test_size=0.3,random_state=6)
# 模型选择
param_list = [
    {
        "penalty":['l1','l2'],
        "class_weight":[None,'balanced'],
        "solver":['liblinear','newton-cg','lbfgs'],
        "multi_class":['ovr']
    },
    {
        "penalty":['l1','l2'],
        "class_weight":[None,'balanced'],
        "solver":['sag','newton-cg','lbfgs'],
        "multi_class":['multinomial']
    }
]
# 算法选择
# solver:{'newton-cg','lbfgs','liblinear','sag','saga'}
# multi_class  auto  ovr multi
# OVR (把多元问题转换成二分类问题) 可选:liblinear  newton-cg   lbfgs
# OVO 一对一  multi   sag   newton-cg

logic_model = LogisticRegression()
grid_cv = GridSearchCV(logic_model,param_list,cv=10)
grid_cv.fit(x_train,y_train)
print(grid_cv.best_estimator_)
print(grid_cv.best_score_)
print(grid_cv.best_params_)

结果:
在这里插入图片描述
进行评分和预测

logic_model = LogisticRegression(class_weight='balanced', multi_class='multinomial',
                   solver='newton-cg')
logic_model.fit(x_train,y_train)
score=logic_model.score(x_test,y_test)
y_predict =logic_model.predict(x_test)
print(y_predict==y_test)
print("预测标签---------",y_predict)
print("实际的标签",y_test)

结果:
在这里插入图片描述
在这里插入图片描述
之后步骤与之前相同:
交叉验证->模型保存->再测试
https://blog.csdn.net/m0_64596200/article/details/126663312?spm=1001.2014.3001.5501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值