当前位置: 首页 > news >正文

浅学线性回归与逻辑回归

1.什么是线性回归和逻辑回归

线性回归是一种用于建模连续目标变量与一个或多个自变量之间线性关系的统计方法,它的基本形式为y = theta0 + theta1*x + theta2 * x*x + .......。其中,我们会假设自变量与因变量存在线性关系,自变量之间相关性较低。

线性回归的损失函数为L(w,b)=∑i=1n​(yi​−y^​i​)2,以均方方差的形式来测算。

逻辑回归的损失函数为

2.线性回归代码实战


import numpy as np import pandas as pd data = pd.read_csv('xandy.csv') #读取数据 data.head() x = data.loc[:,'x '] y = data.loc[:,'y'] #分别读取两列的数据 print(x,y) from matplotlib import pyplot as plt plt.figure() plt.scatter(x,y) plt.show() #建立可视化图形观察 from sklearn.linear_model import LinearRegression lr_model = LinearRegression() #建立线性回归模型 x = np.array(x) x = x.reshape(-1,1) y = np.array(y) y = y.reshape(-1,1) #将x,y向量化 lr_model.fit(x,y) #导入数据 y_predict = lr_model.predict(x) print(y_predict) a = lr_model.coef_ b = lr_model.intercept_ #取得权重和截距 from sklearn.metrics import mean_squared_error,r2_score MSE = mean_squared_error(y,y_predict) R2 = r2_score(y,y_predict) print(MSE,R2) #损失函数以及模型准确度

3.逻辑回归代码实战

import pandas as pd import numpy as np data = pd.read_csv('examdata.csv') data.head() from matplotlib import pyplot as plt fig1 = plt.figure() plt.scatter(data.loc[:,'Exam1'],data.loc[:,'Exam2']) plt.title('Exam1-Exma2') plt.xlabel('Exam1') plt.ylabel('Exam2') plt.show() #可视化分析 mask = data.loc[:,'Pass'] == 1 fig2 = plt.figure() passed = plt.scatter(data.loc[:,'Exam1'][mask],data.loc[:,'Exam2'][mask]) failed = plt.scatter(data.loc[:,'Exam1'][~mask],data.loc[:,'Exam2'][~mask]) plt.title('Exam1-Exam2') plt.xlabel('Exam1') plt.ylabel('Exam2') plt.legend((passed,failed),('passed','failed')) plt.show() #可视化更清晰表达 X = data.drop(['Pass'],axis = 1) y = data.loc[:,'Pass'] x1 = data.loc[:,'Exam1'] x2 = data.loc[:,'Exam2'] X.head() #提取数据 from sklearn.linear_model import LogisticRegression LR = LogisticRegression( C=1e5, # 关闭正则化 solver='liblinear', # 老版本求解器 random_state=42, # 固定随机种子 max_iter=1000 # 保证收敛 ) LR.fit(X,y) y_predict = LR.predict(X) from sklearn.metrics import accuracy_score accuracy = accuracy_score(y,y_predict) print(accuracy) #对模型准确度进行分析 theta0 = LR.intercept_ theta1,theta2 = LR.coef_[0][0],LR.coef_[0][1] print(theta0,theta1,theta2) #线性 fig3 = plt.figure() passed = plt.scatter(data.loc[:,'Exam1'][mask],data.loc[:,'Exam2'][mask]) failed = plt.scatter(data.loc[:,'Exam1'][~mask],data.loc[:,'Exam2'][~mask]) plt.plot(x1,X2_new) plt.title('Exam1-Exam2') plt.xlabel('Exam1') plt.ylabel('Exam2') plt.legend((passed,failed),('passed','failed')) plt.show() #直观看 X1_2 = x1*x1 X2_2 = x2*x2 X1X2 = x1*x2 X_new = {'X1':x1,'X2':x2,'X1_2':X1_2,'X2_2':X2_2,'X1X2':X1X2} X_new = pd.DataFrame(X_new) print(X_new) #规范化X——new LR2 = LogisticRegression() LR2.fit(X_new,y) y2_predict = LR2.predict(X_new) accuracy2 = accuracy_score(y,y2_predict) #对建立的二次进行分析 x1_new = x1.sort_values() theta0 = LR2.intercept_ theta1,theta2,theta3,theta4,theta5 = LR2.coef_[0][0],LR2.coef_[0][1],LR2.coef_[0][2],LR2.coef_[0][3],LR2.coef_[0][4] print(theta0,theta1,theta2,theta3,theta4,theta5) a = theta4 b = theta5*x1_new+theta2 c = theta0*theta1*x1_new+theta3*x1_new*x1_new X2_new_bounary = (-b+np.sqrt(b*b-4*a*c))/(2*a) print(X2_new_bounary) #通过数学手段分析 fig4 = plt.figure() plt.plot(x1,X2_new_bounary) plt.show()

当然在代码中因为仅仅只考虑了二次函数的一边,所以可以进行对应优化

def f(x) : a = theta4 b = theta5*X1_new + theta2 c = theta3*X1_new*X1_new + theta0*theta1*X1_new X1_new_bounary = (-b+np.sqrt(b*b-4*a*c))/(2*a) X2_new_bounary = (-b-np.sqrt(b*b-4*a*c))/(2*a) return X1_new_bounary,X2_new_bounary

4.总结

线性回归更加适用于连续数值目标变量,通常用于预测房价,天气温度等。而逻辑回归函数更加偏于二分类甚至多分类,他的范围存在于(0,1)之间。

学习视频:15 考试通过实战(二)_哔哩哔哩_bilibili

http://www.jsqmd.com/news/669748/

相关文章:

  • 降AI率工具哪个好上手?嘎嘎降AI从注册到出结果完整教程
  • 从源头杜绝损坏!EV录屏高手都在用的MKV格式录制与无损修复全攻略
  • DAMO-YOLO手机检测结果结构化解析:JSON输出格式与数据库存储设计
  • 【Gazebo进阶指南】仿真调试利器:日志记录与场景复现实战
  • LobeChat应用指南:如何利用可扩展插件,定制个性化机器人?
  • 2026机场护栏网厂家推荐 产能规模与专利技术双领先(产能+专利+服务) - 爱采购寻源宝典
  • 算法4.19好题推荐
  • 移动端未来:探讨Qwen3-ForcedAligner-0.6B在Android端的量化部署可能
  • PyTorch 2.8 镜像下的C++扩展开发指南:提升模型推理性能
  • 5步搞定Gemma-3-12B-IT:无需代码基础,快速搭建AI对话平台
  • 别再手动拔跳线帽了!STM32串口下载的BootLoader原理与一键下载电路实战(FlyMcu配置详解)
  • 雪女-斗罗大陆-造相Z-Turbo环境配置进阶:Ubuntu系统依赖深度解析
  • 2026护栏网厂家推荐排行榜产能与专利双优的权威选择 - 爱采购寻源宝典
  • Wan2.2-I2V-A14B多场景应用:跨境电商商品多角度展示视频自动生成
  • 不止于TSP:用Python+LKH算法解决车辆路径规划(VRP)问题的思路与代码示例
  • Janus-Pro-7B赋能运维可视化:自动生成服务器监控图表分析报告
  • Python Web应用负载均衡方案_结合Nginx权重设置实现高可用
  • Ollama+DeepSeek-R1实战:快速部署推理模型,解决复杂问题
  • 从正则表达式到词法分析器:图解NFA确定化与最小化的完整工作流
  • RexUniNLU在STM32嵌入式系统的轻量化部署方案
  • 告别virt-manager!纯命令行搞定KVM虚拟机创建与管理(附常用命令清单)
  • Qwen3-TTS声音克隆应用指南:快速搭建智能客服语音系统
  • HY-MT1.5-1.8B翻译模型优化:提升推理速度的3个技巧
  • 索尼相机功能解锁终极指南:OpenMemories-Tweak完全解析
  • Android 单 Activity 架构下的 Splash Screen 与主题规范指南
  • 基于RetinaFace的Web应用开发:人脸特征提取与分析
  • 从采购入库到工单发料:一份SAP BAPI_GOODSMVT_CREATE的实战代码模板合集(含101/261/344等移动类型)
  • intv_ai_mk11效果展示:通用问答与文本改写真实生成效果对比集
  • 企业内部协同下的AI Coding思考
  • Pixel Dimension Fissioner 性能调优实战:应对C++底层推理加速