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

数学建模(5)——逻辑回归

一、二分类

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix# 加载数据集
iris = datasets.load_iris()
X = iris.data[:, :2]  # 只使用前两个特征
y = (iris.target != 0) * 1  # 将标签转换为二分类问题# 数据标准化
scaler = StandardScaler()
X = scaler.fit_transform(X)# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 训练逻辑回归模型
clf = LogisticRegression()
clf.fit(X_train, y_train)# 预测
y_pred = clf.predict(X_test)# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")# 分类报告
print("Classification Report:")
print(classification_report(y_test, y_pred))# 混淆矩阵
print("Confusion Matrix:")
print(confusion_matrix(y_test, y_pred))# 绘制决策边界
def plot_decision_boundary(clf, X, y):x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.01),np.arange(y_min, y_max, 0.01))Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha=0.8)plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', marker='o')plt.xlabel('Feature 1')plt.ylabel('Feature 2')plt.title('Logistic Regression Decision Boundary')plt.show()plot_decision_boundary(clf, X, y)

二、算法介绍

        逻辑回归是一种二分类算法,它只能处理两个类别

        标准化的目的是将特征数据调整到一个标准的范围内(通常是均值为0,标准差为1),从而消除不同特征之间的量纲差异。这对于许多机器学习算法来说都非常重要,尤其是使用梯度下降的算法,如逻辑回归、神经网络等。标准化可以加快收敛速度并提高模型性能。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 『大模型笔记』LLM秘密:温度、Top-K和Top-P抽样技术解析!
  • 服务器相关总结
  • 2024 中国大数据交易平台发展现状调研简报
  • Leetcode3208. 交替组 II
  • 逆向案例二十八——某高考志愿网异步请求头参数加密,以及webpack
  • Qwen-Agent
  • 【MQTT(2)】开发一个客户端,ubuntu版本
  • 亚信安全终端一体化解决方案入选应用创新典型案例
  • mq基础入门
  • CDGA数据治理工程师证书怎么样?如何报名?考试难不难?通过率高吗?
  • layui table 浮动操作内容收缩,展开
  • HTML5+ push消息推送
  • 【面经】C++八股文(地平线C++一面)
  • WebGL-编译报错,如何定位sendfile报错位置
  • java事务回滚原理 Java事务回滚的实现及流程
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 345-反转字符串中的元音字母
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • E-HPC支持多队列管理和自动伸缩
  • Facebook AccountKit 接入的坑点
  • Flannel解读
  • JavaScript创建对象的四种方式
  • JavaScript中的对象个人分享
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • leetcode386. Lexicographical Numbers
  • LintCode 31. partitionArray 数组划分
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PaddlePaddle-GitHub的正确打开姿势
  • socket.io+express实现聊天室的思考(三)
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 基于组件的设计工作流与界面抽象
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 思否第一天
  • 我的面试准备过程--容器(更新中)
  • 我与Jetbrains的这些年
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #if等命令的学习
  • ${ }的特别功能
  • ()、[]、{}、(())、[[]]命令替换
  • (02)Hive SQL编译成MapReduce任务的过程
  • (js)循环条件满足时终止循环
  • (Ruby)Ubuntu12.04安装Rails环境
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (七)Activiti-modeler中文支持
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十八)SpringBoot之发送QQ邮件
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (太强大了) - Linux 性能监控、测试、优化工具
  • .apk文件,IIS不支持下载解决
  • .NET 4.0中使用内存映射文件实现进程通讯