机器学习—线性回归、岭回归与逻辑回归

本文介绍了机器学习中的线性回归、岭回归和逻辑回归。线性回归涉及数据获取、分割、标准化及训练预测。岭回归作为正则化的线性回归方法,用于防止过拟合。逻辑回归则是对分类问题的应用,通过归一化线性回归进行癌症预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性回归:
1、 获取数据
2、 数据分割
3、数据标准化处理
4、训练预测
岭回归:
正则化后的线性回归
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:

#房价预测、销售额预测、贷款额度预测
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression,SGDRegressor,Ridge
from sklearn.metrics import mean_squared_error
#线性回归预测房子价格
#获取数据
lb=load_boston()
#分割数据集
x_train,x_test,y_train,y_test=train_test_split(lb.data,lb.target,train_size=0.25)

#标准化处理,特征值和目标值都要进行标准化处理,实例化两个api
#特征值
std_x=StandardScaler()
x_train=std_x.fit_transform(x_train)
x_test=std_x.transform(x_test)
#目标值
std_y=StandardScaler()
y_train=std_y.fit_transform(y_train.reshape(-1,1))  #转化器要求数据是二维的
y_test=std_y.transform(y_test.reshape(-1,1))

#方法1,正规方程
lr=LinearRegression()
lr.fit(x_train,y_train)
print(lr.coef_)                 #回归系数
y_predict=lr.predict(x_test)
y_predict=std_y.inverse_transform(y_predict)
print("预测价格:",y_predict)
print("正规方程的均方误差:",mean_squared_error(std_y.inverse_transform(y_test),y_predict))
#方法2,梯度下降
sgd=SGDRegressor()
sgd.fit(x_train,y_train)
print(sgd.coef_)                 #回归系数
y_predict2=sgd.predict(x_test)
y_predict2=std_y.inverse_transform(y_predict2)
print("预测价格:",y_predict2)
print("梯度下降的均方误差:",mean_squared_error(std_y.inverse_transform(y_test),y_predict2))
#方法3,岭回归房价预测
rd=Ridge(alpha=1.0)
rd.fit(x_train,y_train)
print(rd.coef_)                 #回归系数
y_predict3=rd.predict(x_test)
y_predict3=std_y.inverse_transform(y_predict3)
print("预测价格:",y_predict3)
print("梯度下降的均方误差:",mean_squared_error(std_y.inverse_transform(y_test),y_predict3))

逻辑回归:
归1化的线性回归
理论部分:https://www.cnblogs.com/pinard/p/6029432.html
sklearn中逻辑回归相关参数:https://www.cnblogs.com/pinard/p/6035872.html
对是否患癌症进行预测:

from sklearn.datasets import load_breast_cancer
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
cancer_data=load_breast_cancer()     #导入数据
sample=cancer_data.data              #特征数据
label=cancer_data.target             #标签数据
X_train,X_test,y_train,y_test=train_test_split(sample,label,test_size=0.3)  #划分数据集
lr=LogisticRegression()                  #调用逻辑回归
lr.fit(X_train,y_train)                  #用测试集训练模型
print(lr.coef_)                            #系数
y_predict=lr.predict(X_test)                 #预测
print("准确率:",lr.score(X_test,y_test))    #准确率
print(classification_report(y_test,y_predict,labels=[0,1],target_names=["恶性","良性"])) #精确率、召回率、F1

运行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值