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

机器学习-逻辑回归-考试预测通过-1

逻辑回归:用于解决分类问题的一种模型。根据数据特征或属性,计算其归属于某一类别的概率

P(x),根据概率数值判断其所属类别。主要应用场景:二分类问题。

考试预测通过实战:

examdata.csv数据如图:

Pass等于0划分为考试未通过,Pass等于1划分为考试通过。

边界函数: theta0+theta1 * x1 +theta2 * X2 = 0

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
data=pd.read_csv('examdata.csv')fig1 = plt.figure()
plt.scatter(data.loc[:,'Exam1'],data.loc[:,'Exam2'])
plt.title('Exam1 - Exam2')
plt.xlabel('Exam1')
plt.ylabel('Exam2')
plt.show()
# add label mask
mask=data.loc[:,'Pass'] == 1fig2 = 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.legend((passed, failed), ('passed', 'failed'))  # 增加一个右上角的标签
plt.title('Exam1 - Exam2')
plt.xlabel('Exam1')
plt.ylabel('Exam2')
plt.show()# define X,y
X = data.drop(['Pass'],axis= 1)
y = data.loc[:,'Pass']
X1 = data.loc[:,'Exam1']
X2 = data.loc[:,'Exam2']# establish the model and train it
from sklearn.linear_model import  LogisticRegression
LR = LogisticRegression()
LR.fit(X,y)# show the predicted result and its accuracy
y_predict = LR.predict(X)
print(y_predict)# evaluate the model
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
print(accuracy)# 使用模型进行预测
# exam1=70,exam2=65
y_test=LR.predict([[70,65]])
print('passed' if y_test==1 else 'failed')# 输出边界函数:
theta0 = LR.intercept_
theta1,theta2 = LR.coef_[0][0],LR.coef_[0][1] # 两个变量对应两个θ
print(theta0,theta1,theta2)
# theta0+theta1 * x1 +theta2 * X2 = 0
X2_new = -(theta0+theta1*X1)/theta2  # 用X1反推X2_new
print(X2_new)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.legend((passed, failed), ('passed', 'failed'))
plt.plot(X1,X2_new)  # 画出边界函数
plt.title('Exam1 - Exam2')
plt.xlabel('Exam1')
plt.ylabel('Exam2')
plt.show()

运行结果:

初始数据拟合图:

数据分类图:

数据分类+边界函数图:

控制台结果:

http://www.dtcms.com/a/395107.html

相关文章:

  • 计算机中用8位如何计算最大值和最小值-128~127
  • PyTorch 神经网络工具箱完全指南
  • docker一键安装部署若依Ruoyi-Vue(保姆级)
  • 通义DeepResearch论文六连发全面解读
  • 大模型应用-prompt提示词工程
  • Windows 命令行:使用路径名和文件名来启动文件
  • 稻瘟病监测仪的功能用途
  • 仿照豆包实现 Prompt 变量模板输入框
  • 如何安装 SQLPro Studio for Mac?v2024.21.dmg 文件安装步骤详解(附安装包)
  • 扣子空间:字节跳动推出的AI Agent 智能体平台
  • 编程基础:表驱动
  • 内网穿透的应用-RemoteJVMDebug+cpolar:内网服务器调试的无界解决方案
  • 如何将PPT每一页批量导出为高清JPG图片?一文讲清操作流程
  • 高防服务器如何实现安全防护?ddos攻击会暴露ip吗?
  • linux硬盘分区管理
  • spring boot实现MCP服务器,及其cursor测试使用的方法
  • web前端开发与服务器通信的技术变迁历程
  • 市值机器人:智能力量与监管博弈下的金融新生态
  • LeetCode:46.二叉树展开为链表
  • LeetCode算法日记 - Day 50: 汉诺塔、两两交换链表中的节点
  • 力扣每日一刷Day24
  • LeetCode 226. 翻转二叉树
  • leetcode 2331 计算布尔二叉树的值
  • docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“
  • 从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
  • 6. Typescript 类型体操
  • [C++:类的默认成员函数——Lesson7.const成员函数]
  • 园区3D可视化数字孪生管理平台与 IBMS 智能化集成系统:打造智慧园区新范式​
  • 【Javaweb】Restful开发规范
  • 【C++】深入理解const 成员函数