tensorflow实现二分类

在这里插入图片描述

# 导入所需库和模块
from tensorflow.keras.layers import Dense, Input, Activation  # 导入神经网络层和激活函数模块
from tensorflow.keras.models import Sequential  # 导入Keras的Sequential模型
import pandas as pd  # 导入Pandas库用于数据处理
import numpy as np  # 导入NumPy库用于数值计算
from matplotlib import pyplot as plt  # 导入Matplotlib库用于数据可视化
from sklearn.model_selection import train_test_split  # 导入数据集分割模块
from sklearn.metrics import accuracy_score  # 导入评估模块

# 创建神经网络模型
model = Sequential()  # 创建Sequential模型,用于堆叠神经网络层

# 添加输入层和隐藏层
model.add(Dense(units=20, input_dim=2, activation='sigmoid'))  # 添加具有20个神经元和sigmoid激活函数的隐藏层
model.add(Dense(units=1, activation='sigmoid'))  # 添加具有1个神经元和sigmoid激活函数的输出层

# 查看模型结构摘要
model.summary()

# 编译模型,配置优化器、损失函数和评估指标
model.compile(loss='categorical_crossentropy',  # 使用分类交叉熵作为损失函数
              optimizer='sgd',  # 使用随机梯度下降算法进行优化
              metrics=['accuracy'])  # 评估指标为准确率

data = pd.read_csv('D:/pythonDATA/data.csv')  # 从CSV文件中读取数据
X = data.drop(['y'], axis=1)  # 特征变量
y = data.loc[:, 'y']  # 目标变量

# 数据可视化
fig1 = plt.figure(figsize=(5, 5))  # 创建画布
passed = plt.scatter(X.loc[:, 'x1'][y == 1], X.loc[:, 'x2'][y == 1])  # 目标为1的数据点
filed = plt.scatter(X.loc[:, 'x1'][y == 0], X.loc[:, 'x2'][y == 0])  # 目标为0的数据点
plt.legend((passed, filed), ('passed', 'filed'))  # 设置图例
plt.xlabel('x1')  # x轴标签
plt.ylabel('x2')  # y轴标签
plt.title('raw data')  # 标题
plt.show()  # 显示图形

# 数据分割(训练集和测试集)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=10)  # 将数据集划分为训练集和测试集

# 重新编译模型以使用不同的优化器和损失函数
model.compile(optimizer='adam', loss='binary_crossentropy')  # 配置解决问题的方法和损失函数

# 进行拟合训练,迭代训练三千次,降低其损失函数
model.fit(X_train, y_train, epochs=3000)  # 拟合模型,进行训练

# 进行预测
y_test_predict = model.predict_classes(X_test)  # 对测试集进行预测
accuracy_test = accuracy_score(y_test, y_test_predict)  # 计算预测准确率

# 生成范围内的预测结果
xx, yy = np.meshgrid(np.arange(0, 1, 0.01), np.arange(0, 1, 0.01))  # 创建预测范围
x_range = np.c_[xx.ravel(), yy.ravel()]  # 生成范围内所有点的坐标
print("输出坐标:")
print(x_range)
y_range_predict = model.predict_classes(x_range)  # 预测范围内所有点的类别

# 格式化输出并绘图展示结果
y_range_predict_form = pd.Series(i[0] for i in y_range_predict)  # 将预测结果格式化为Series类型

print(y_range_predict_form)  # 打印格式化后的预测结果
print(accuracy_test)  # 打印预测准确率

fig2 = plt.figure(figsize=(5, 5))  # 创建画布
passed_predict = plt.scatter(x_range.loc[:, 'x1'][y == 1], x_range.loc[:, 'x2'][y == 1])  # 预测为1的数据点
filed_predict = plt.scatter(x_range.loc[:, 'x1'][y == 0], x_range.loc[:, 'x2'][y == 0])  # 预测为0的数据点

passed = plt.scatter(X.loc[:, 'x1'][y == 1], X.loc[:, 'x2'][y == 1])  # 实际为1的数据点
filed = plt.scatter(X.loc[:, 'x1'][y == 0], X.loc[:, 'x2'][y == 0])  # 实际为0的数据点

plt.legend((passed, filed, passed_predict, filed_predict), ('passed', 'filed', 'passed_predict', 'filed_predict'))  # 设置图例
plt.xlabel('x1')  # x轴标签
plt.ylabel('x2')  # y轴标签
plt.title('raw result')  # 标题
plt.show()  # 显示图形

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/626964.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI网络爬虫:用kimichat自动批量提取网页内容

首先,在网页中按下F12键,查看定位网页元素: 然后在kimi中输入提示词: 你是一个Python编程专家,要完成一个爬取网页内容的Python脚本,具体步骤如下: 在F盘新建一个Excel文件:提示词…

JavaScript异步编程——09-Promise类的方法【万字长文,感谢支持】

Promise 类的方法简介 Promise 的 API 分为两种: Promise 实例的方法(也称为:Promis的实例方法) Promise 类的方法(也称为:Promise的静态方法) 前面几篇文章,讲的都是 Promise 实…

SpringBoot解决CORS跨域——WebMvcConfigurationSupport

前端请求后端报错了。 状态码:403 返回错误:Invalid coRs request 增加配置类WebMvcConfig Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Overridepublic void addCorsMappings(CorsRegistry registry) {// 允许跨域…

Python中tkinter编程入门4

在Python中tkinter编程入门3-CSDN博客中创建了Button控件,点击该控件就会产生一个点击事件,在创建Button控件时指定该点击事件的处理程序后,按键控件就会对用户的点击事件产生响应。 1 定义事件处理器 定义事件处理器就是一个自定义的函数。…

2024年小学生古诗文大会备考:吃透历年真题和知识点(持续)

根据往年的安排,2024年小学生古诗文大会预计这个月就将启动。该如何备考2024年小学生古诗文大会呢?根据往期的经验,只要吃透这些真题和背后的知识点,通过上海小学生古诗文大会的初选(初赛)一点问题都没有。…

使用docker创建hadoop集群:Couldn‘t upload the file

运行的环境; Windows10 Docker Desktopdocker-hadoop 出现的问题如下: 解决方法 https://github.com/big-data-europe/docker-hadoop/issues/98

美国站群服务器如何提高企业网站的负载均衡能力?

美国站群服务器如何提高企业网站的负载均衡能力? 美国站群服务器是企业提高网站负载均衡能力的重要工具之一。随着网络流量的增加和用户需求的多样化,如何有效地管理和分配流量成为了企业面临的挑战。通过采用美国站群服务器,企业可以实现流量的智能分…

JETBRAINS IDES 分享一个2099通用试用码!CLion 2024 版 ,支持一键升级

文章目录 废话不多说上教程:(动画教程 图文教程)一、动画教程激活 与 升级(至最新版本) 二、图文教程 (推荐)Stage 1.下载安装 toolbox-app(全家桶管理工具)Stage 2 : 下…

echarts实现金价可视化大屏(项目实战)

前言 最近由于某种原因参加了一个比赛,三天时间肝出来一个可视化大屏项目(无后端),代码已开源,但是还在比赛期间不知道会不会影响到 技术使用:html,css,js,echarts&#…

谷歌Gemini时代来了!加固搜索护城河、赋能全家桶,Gemini 1.5 Pro升级至200万token

3 月中旬,谷歌宣布 Google I/O 定档北京时间 5 月 15 日凌晨 1 点。而当大会开幕时间临近,本应是讨论度最高的时候,「宿敌」OpenAI 却半路杀出,抢先一天,仅耗时 27 分钟就发布了颠覆性巨作 GPT-4o,将新一轮…

生态系统类型分布数据、土地利用数据、植被类型分布、自然保护区分布数据

引言 全国自然保护区生态系统类型分布信息产品是指基于Landsat TM数字影像(以地形图纠正),采用全数字化人机交互遥感快速提取方法,建立全国自然保护区生态系统结构数据集,同时做成多种尺度的栅格数据,其中包…

RK3568平台开发系列讲解(SPI篇)SPI数据的传输

🚀返回专栏总目录 文章目录 一、数据结构1.1、spi_transfer 结构体1.2、spi_message二、数据发送程序分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 参考资料: spi_transferspi_message一、数据结构 spi 数据传输主要使用了 spi_message 和 spi_transfer 结构…

鸿蒙OpenHarmony:【关于deps、external_deps的使用】

关于deps、external_deps的使用 在添加一个模块的时候,需要在BUILD.gn中声明它的依赖,为了便于后续处理部件间依赖关系,我们将依赖分为两种——部件内依赖deps和部件间依赖external_deps。 依赖分类 开发前请熟悉鸿蒙开发指导文档&#xff…

查看Linux系统是Ubuntu还是CentOS

要查看Linux系统是Ubuntu还是CentOS,可以通过多种方式进行确认: 查看/etc/os-release文件: 在终端中执行以下命令: cat /etc/os-release 如果输出中包含"IDubuntu",则表示系统是Ubuntu;如果输出中…

voceChat - 支持独立部署的个人云社交媒体聊天服务(使用场景及体验分享)

序言 在工作室的发展中,我们急需一个更加简单便捷,高效,适用于团队内部交流的组织平台。起因是我们团队一直是直接使用QQ进行活动,发现QQ很多功能不是很方便并且过于臃肿,越来越不契合工作室的生产环境,于…

pytorch 2.0 多线程并行,导致GPU利用100%,卡住

背景: 程序中有pytorch模型两个,yolov5,crnn。 之前无论是pth格式,还是TRT格式,并行的都没有问题。 最近发现,多线程ThreadPoolExecutor(max_workers2)调用的时候,即单个进程内处理一张图像&a…

数据可视化训练第7天(json文件读取国家人口数据,找出前10和后10)

数据 https://restcountries.com/v3.1/all;建议下载下来,并不是很大 import numpy as np import matplotlib.pyplot as plt import requests import json #由于访问url过于慢;将数据下载到本地是json数据 #urlhttps://restcountries.com/v3…

Unity Pixels Per Unit 与 Sprite Renderer Scale的逻辑关系,为什么平铺的Sprite Renderer会变形?

SpriteRenderer之前用的比较基础,没遇到过什么问题,这几天使用SpriteRenderer的平铺时发现平铺变形了,研究了一下,原来有这么多在逻辑在里面。 当我们导入图片选择Texture Type为Sprite时表示我们的图片用途是UI或者SpriteRendere…

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测完整代码风电功率预测 基于随机森林(Random Forest, RF)的风电功率预测是一种常用且有效的方法。以下是基于RF的风电功率预测的一般步骤: 数据准备:收集与风电场发电功率相关的数据,包括风速、风向、温度、湿度等气象数据以及风电场的历史功率数…

手机触控面板中应用的电容式触摸芯片

手机触控屏(Touch panel)又称为触控面板,是个可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面…