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

0304考试通过-逻辑回归实战-机器学习-人工智能

开始通过预测

  • 基于examdata.csv数据,建立逻辑回归模型,评估模型表现
  • 预测Exam1=75,Exam2=60时,该同学能否通过Exam3
  • 建立二阶边界模型,重复1、2

Examdata.csv示例数据如下:

Exam1,Exam2,Pass
34.62365962,78.02469282,0
30.28671077,43.89499752,0
35.84740877,72.90219803,0
60.18259939,86.3085521,1

以下是结合数据可视化的完整代码,包含数据点、决策边界及新样本的标记:

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.preprocessing import PolynomialFeatures, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipelinematplotlib.use('TkAgg')
# 设置 Matplotlib 使用支持中文的字体
plt.rcParams['font.sans-serif'] = ['Noto Sans CJK SC']  # 根据字体名称调整
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题# 读取数据
data = pd.read_csv('examdata.csv')
X = data[['Exam1', 'Exam2']].values  # 关键修改:转为 numpy 数组
# print(X)
y = data['Pass'].values
# print(y)# 创建模型流水线
model = make_pipeline(PolynomialFeatures(degree=2, include_bias=False),StandardScaler(),LogisticRegression(penalty='l2', solver='lbfgs')
)
model.fit(X, y)# 生成网格点
x_min, x_max = data['Exam1'].min() - 5, data['Exam1'].max() + 5
y_min, y_max = data['Exam2'].min() - 5, data['Exam2'].max() + 5
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 500),np.linspace(y_min, y_max, 500))# 预测网格点的分类结果
Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)# 可视化
plt.figure(figsize=(10, 6))
# 绘制决策边界
plt.contourf(xx, yy, Z, alpha=0.3, cmap='coolwarm')
# 绘制原始数据点(通过 numpy 布尔索引)
plt.scatter(X[y == 0, 0], X[y == 0, 1],c='red', label='Failed', edgecolors='k')
plt.scatter(X[y == 1, 0], X[y == 1, 1],c='blue', label='Passed', edgecolors='k')
# 标记新样本
plt.scatter(75, 60, c='green', s=200, marker='*',label='New Sample (75, 60)')plt.xlabel('Exam1 Score')
plt.ylabel('Exam2 Score')
plt.title('Logistic Regression with 2nd-Order Boundary')
plt.legend()
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()

可视化说明

  1. 颜色区域:红色区域表示预测为未通过(Failed),蓝色区域表示通过(Passed)
  2. 数据点:原始数据点按真实标签着色(红色=0,蓝色=1)
  3. 星号标记:绿色五角星表示待预测样本(Exam1=75, Exam2=60)
  4. 决策边界:二阶多项式生成的曲线边界能更灵活地划分数据

输出效果

  • 通过样本集中在右上角高分段区域
  • 新样本位于蓝色通过区域,与代码预测结果一致
  • 二阶边界呈现出明显的非线性形状,比一阶逻辑回归的直线边界更贴合数据分布

如下图所示:

在这里插入图片描述

可视化结果直观展示了模型如何通过非线性决策边界对复杂数据进行分类。

结语

❓QQ:806797785

⭐️仓库地址:https://gitee.com/gaogzhen

⭐️仓库地址:https://github.com/gaogzhen

[1]AI人工智能从入门到精通全套教程[CP/OL].

相关文章:

  • 40-智慧医疗服务平台(在线接/问诊/机器学习)
  • 机器学习课程设计报告 —— 基于二分类的岩石与金属识别模型
  • 如何保证 Kafka 数据实时同步到 Elasticsearch?
  • 【MySQL】第7节|Mysql锁机制与优化实践以及MVCC底层原理剖析
  • 预分配矩阵内存提升文件数据读取速度
  • Kotlin中let、run、with、apply及also的差别
  • 【Python/Pygame】事件监测
  • [C语言初阶]扫雷小游戏
  • Java 函数式接口(Functional Interface)
  • 符合Python风格的对象(使用 __slots__ 类属性节省空间)
  • DeepSeek 赋能数字农业:从智慧种植到产业升级的全链条革新
  • Windows 中动态库.dll 的 .lib 文件有什么作用?
  • SOC-ESP32S3部分:10-GPIO中断按键中断实现
  • 什么是模板字符串?比普通字符串的好处
  • mongodb语法$vlookup性能分析
  • YOLO11解决方案之使用 Streamlit 应用程序进行实时推理
  • github公开项目爬取
  • 【博客系统】博客系统第五弹:基于令牌技术实现用户登录接口
  • 【C++/控制台】迷宫游戏
  • SQL每日一练
  • 网站导航条做多高/亚马逊关键词排名提升
  • 做网站用什么服务器/友情链接多久有效果
  • 建设一个网站平台的费用/网页广告调词平台多少钱
  • 住宅与建设部网站/网络营销论文
  • 芜湖网站建设海长卷发背影图/一年的百度指数
  • 个人承接网站建设/长尾关键词挖掘站长工具