返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么实现一个数据预测集成工具
  • 351
分享到

Python中怎么实现一个数据预测集成工具

2023-06-16 06:06:46 351人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章给大家介绍python中怎么实现一个数据预测集成工具,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。数据的训练和训练的GUI窗口经过算法比较,发现这里我们选择使用sklearn简单的多元回归进行拟合数据可以达到比

这篇文章给大家介绍python中怎么实现一个数据预测集成工具,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

数据的训练和训练的GUI窗口

经过算法比较,发现这里我们选择使用sklearn简单的多元回归进行拟合数据可以达到比较好的效果。

(1)首先是是数据的读取,通过设定选定文件夹函数来读取文件,加载数据的效果:

'''选择文件功能''' def selectPath():     # 选择文件path_接收文件地址     path_ =tkinter.filedialog.askopenfilename()     # 通过replace函数替换绝对文件地址中的/来使文件可被程序读取     # 注意:\\转义后为\,所以\\\\转义后为\\     path_ =path_.replace("/", "\\\\")     # path设置path_的值     path.set(path_)     return path  # 得到的DataFrame读入所有数据 data = pd.read_excel(FILENAME, header=0, usecols="A,B,C,D,E,F,G,H,I") # DataFrame转化为array DataArray = data.values # 读取已使用年限作为标签 Y = DataArray[:, 8] # 读取其他参数作为自变量,影响因素 X = DataArray[:, 0:8] # 字符串转变为整数 for i in range(len(Y)):     Y[i] = int(Y[i].replace("年", "")) X = np.array(X)  # 转化为array Y = np.array(Y)  # 转化为array  root = Tk() root.geometry("+500+260") # 背景图设置 canvas = tk.Canvas(root, width=600, height=200, bd=0, highlightthickness=0) imgpath = '1.jpg' img = Image.open(imgpath) photo = ImageTk.PhotoImage(img) #背景图大小设置 canvas.create_image(700, 400, image=photo) canvas.pack() path = StringVar() #标签名称位置 label1=tk.Label(text = "目标路径:") label1.pack() e1=tk.Entry( textvariable = path) e1.pack() bn1=tk.Button(text = "路径选择", command = selectPath) bn1.pack() bn2=tk.Button(text = "模型训练", command = train) bn2.pack() bn3=tk.Button(text = "模型预测", command = test) bn3.pack() #标签按钮等放在背景图上 canvas.create_window(50, 50, width=150, height=30,                      window=label1) canvas.create_window(280, 50, width=300, height=30,                      window=e1) canvas.create_window(510, 50, width=150, height=30,                      window=bn1) canvas.create_window(50, 100, width=150, height=30,                      window=bn2) canvas.create_window(510, 100, width=150, height=30,                      window=bn3)  root.mainloop()

效果如下可见:

Python中怎么实现一个数据预测集成工具

(2)然后是数据的拟合和可视化模型效果:

# 模型拟合 reg = LinearRegression() reg.fit(X, Y) # 预测效果 predict = reg.predict(np.array([X[0]])) Y_predict = reg.predict(X) print(Y_predict) # 横坐标 x_label = [] for i in range(len(Y)):     x_label.append(i) # 绘图 fig, ax = plt.subplots() # 真实值分布散点图 plt.scatter(x_label, Y) # 预测值分布散点图 plt.scatter(x_label, Y_predict) # 预测值拟合直线图 plt.plot(x_label, Y_predict) # 横纵坐标 ax.set_xlabel('预测值与真实值模型拟合效果图') ax.set_ylabel('蓝色为真实值,黄色为预测值') # 将绘制的图形显示到tkinter:创建属于root的canvas画布,并将图f置于画布上 canvas = FigureCanvasTkAgg(fig, master=root) canvas.draw()  # 注意show方法已经过时了,这里改用draw canvas.get_tk_widget().pack() # matplotlib的导航工具栏显示上来(默认是不会显示它的) toolbar = NavigationToolbar2Tk(canvas, root) toolbar.update() canvas._tkcanvas.pack() #弹窗显示 messagebox.showinfo(title='模型情况', message="模型训练完成!") 其中的效果如下可见:

其中的效果如下可见:

Python中怎么实现一个数据预测集成工具

模型的预测和使用

其中模型的预测主要通过两种方式进行预测,分别是:手动输入单个数据进行预测和读取文件进行预测。

其中手动输入数据进行预测需要设置更多的GUI按钮,其中代码如下:

#子窗口 LOVE = Toplevel(root) LOVE.geometry("+100+260") LOVE.title = "模型测试" #子窗口各标签名 label = ["上升沿斜率(v/us)", "下降沿斜率(v/us)", "脉宽(ns)", "低状态电平(mv)", "低电平方差(mv2)x10-3", "高状态电平(v)", "高电平方差(v2)", "信号质量因子"] Label(LOVE, text="1、输入参数预测", font=("微软雅黑", 20)).grid(row=0, column=0) #标签名称,字体位置 Label(LOVE, text=label[0], font=("微软雅黑",10)).grid(row=1, column=0) Label(LOVE, text=label[1], font=("微软雅黑", 10)).grid(row=1, column=1) Label(LOVE, text=label[2], font=("微软雅黑", 10)).grid(row=1, column=2) Label(LOVE, text=label[3], font=("微软雅黑", 10)).grid(row=1, column=3) Label(LOVE, text=label[4], font=("微软雅黑", 10)).grid(row=1, column=4) Label(LOVE, text=label[5], font=("微软雅黑", 10)).grid(row=1, column=5) Label(LOVE, text=label[6], font=("微软雅黑", 10)).grid(row=1, column=6) Label(LOVE, text=label[7], font=("微软雅黑", 10)).grid(row=1, column=7) #编辑框位置和字体 en1=tk.Entry(LOVE, font=("微软雅黑", 8)) en1.grid(row=2, column=0) en2=tk.Entry(LOVE, font=("微软雅黑", 8)) en2.grid(row=2, column=1) en3=tk.Entry(LOVE, font=("微软雅黑", 8)) en3.grid(row=2, column=2) en4=tk.Entry(LOVE, font=("微软雅黑", 8)) en4.grid(row=2, column=3) en5=tk.Entry(LOVE, font=("微软雅黑", 8)) en5.grid(row=2, column=4) en6=tk.Entry(LOVE, font=("微软雅黑", 8)) en6.grid(row=2, column=5) en7=tk.Entry(LOVE, font=("微软雅黑", 8)) en7.grid(row=2, column=6) en8=tk.Entry(LOVE, font=("微软雅黑", 8)) en8.grid(row=2, column=7) Label(LOVE, text="", font=("微软雅黑", 10)).grid(row=3, column=0) #测试输入框预测 def pp():     x=np.array([int(en1.get()),int(en2.get()),int(en3.get()),int(en4.get()),int(en5.get()),int(en6.get()),int(en7.get()),int(en8.get())])     # 预测效果     predict = reg.predict(np.array([x]))     Label(LOVE, text="预测结果已使用年数为:"+str(predict[0])+"年", font=("微软雅黑", 10)).grid(row=4, column=3)     print(predict) Button(LOVE, text="预测:", font=("微软雅黑", 15),command=pp).grid(row=4, column=0) Label(LOVE, text="2、选择文件预测", font=("微软雅黑", 20)).grid(row=5, column=0) path2 = StringVar() label1 = tk.Label(LOVE,text="目标路径:", font=("微软雅黑", 10)) label1.grid(row=6, column=0) e1 = tk.Entry(LOVE,textvariable=path2, font=("微软雅黑", 10)) e1.grid(row=6, column=2) label = ["上升沿斜率(v/us)", "下降沿斜率(v/us)", "脉宽(ns)", "低状态电平(mv)", "低电平方差(mv2)x10-3", "高状态电平(v)", "高电平方差(v2)",              "信号质量因子"]     n = 0     for i in predict_value:         print(str(label) + "分别为" + str(X[n]) + "预测出来的结果为:" + str(i) + "年" + "\n")         f = open("预测结果.txt", "a")         f.write(str(label) + "分别为" + str(X[n]) + "预测出来的结果为:" + str(i) + "年" + "\n")         f.close()         f = open("result.txt", "a")         f.write(str(i) + "\n")         f.close()         n += 1     messagebox.showinfo(title='模型情况', message="预测结果保存在当前文件夹下的TXT文件中!")     os.system("result.txt")     os.system("预测结果.txt") Button(LOVE, text="预测:", font=("微软雅黑", 15), command=ppt).grid(row=7, column=0)

效果如下可见:

Python中怎么实现一个数据预测集成工具

选择文件进行读取预测和模型训练数据的读取类似,代码如下:

#选择文件预测 def selectPath2():     # 选择文件path_接收文件地址     path_ =tkinter.filedialog.askopenfilename()     # 通过replace函数替换绝对文件地址中的/来使文件可被程序读取     # 注意:\\转义后为\,所以\\\\转义后为\\     path_ =path_.replace("/", "\\\\")     # path设置path_的值     path2.set(path_)     return path bn1 = tk.Button(LOVE,text="路径选择", font=("微软雅黑", 10), command=selectPath2) bn1.grid(row=6, column=6) def ppt():     try:         os.remove("预测结果.txt")         os.remove("result.txt")     except:         pass     # 文件的名字     FILENAME =path2.get()     # 禁用科学计数法     pd.set_option('float_fORMat', lambda x: '%.3f' % x)     np.set_printoptions(threshold=np.inf)     # 得到的DataFrame读入所有数据     data =pd.read_excel(FILENAME, header=0, usecols="A,B,C,D,E,F,G,H")     # DataFrame转化为array     DataArray =data.values     # 读取其他参数作为自变量,影响因素     X = DataArray[:,0:8]     predict_value = reg.predict(X)     print(predict_value)

效果如下:

Python中怎么实现一个数据预测集成工具

由于读取文件进行预测的话,数据较多故直接存储在TXT中方便查看:

Python中怎么实现一个数据预测集成工具

关于Python中怎么实现一个数据预测集成工具就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python中怎么实现一个数据预测集成工具

本文链接: https://lsjlt.com/news/282655.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中怎么实现一个数据预测集成工具
    这篇文章给大家介绍Python中怎么实现一个数据预测集成工具,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。数据的训练和训练的GUI窗口经过算法比较,发现这里我们选择使用sklearn简单的多元回归进行拟合数据可以达到比...
    99+
    2023-06-16
  • 怎么用Python制作一个数据预处理小工具
    这篇文章主要讲解了“怎么用Python制作一个数据预处理小工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python制作一个数据预处理小工具”吧!在我们平常使用Python进行数据...
    99+
    2023-06-15
  • python数据预测模型算法怎么实现
    要实现一个Python数据预测模型算法,你需要遵循以下步骤: 收集数据:首先,你需要收集相关数据,这些数据可以来自于各种来源,如...
    99+
    2024-02-29
    python
  • Python中怎么实现一个生成器函数
    Python中怎么实现一个生成器函数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.生成器在 Python 中,一边循环一边计算的机制,称为生成器(Generator);生成...
    99+
    2023-06-02
  • Python实现一个自助取数查询工具
    目录具体思路:一、数据库连接类二、数据提取主函数模块基于底层数据来开发不难,无非是将用户输入变量作为筛选条件,将参数映射到 sql 语句,并生成一个 sql 语句然后再去数据库执行 最后再利用 QT 开发一个 GUI...
    99+
    2022-06-02
    python 自助取数 python 取数查询
  • 怎么用nodejs给C#写一个数据表的实体类生成工具
    这篇文章将为大家详细讲解有关怎么用nodejs给C#写一个数据表的实体类生成工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。虽然微软提供了T4模板,但是我感觉非常难用。哪儿比得上直接用脚本来写模板来的爽...
    99+
    2023-06-15
  • 怎么利用Python实现一个论文降重工具
    这篇文章主要介绍“怎么利用Python实现一个论文降重工具”,在日常操作中,相信很多人在怎么利用Python实现一个论文降重工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用Python实现一个论文降...
    99+
    2023-06-20
  • 怎么用Python实现一个简易的截图工具
    这篇文章主要讲解了“怎么用Python实现一个简易的截图工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python实现一个简易的截图工具”吧!代码:# # -*...
    99+
    2023-07-02
  • Python Pandas工具绘制数据图怎么实现
    这篇文章主要为大家展示了“Python Pandas工具绘制数据图怎么实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python Pandas工具绘制数据图怎么实现”这篇...
    99+
    2023-06-21
  • 用Python实现一个打字速度测试工具来测试你的手速
    目录一、程序解读二、文本内容的显示三、文本的输入检查四、结果计算和显示五、完整代码一、程序解读 本次程序中,我们使用的python库完全是python的内置库,其中界面的制作是利用t...
    99+
    2024-04-02
  • Android中怎么实现一个图片切割工具类
    Android中怎么实现一个图片切割工具类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。图片切割工具类定义:public class ImageSpli...
    99+
    2023-05-30
    android
  • Android中怎么实现一个手机管理工具类
    本篇文章给大家分享的是有关Android中怎么实现一个手机管理工具类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。工具类内的方法:getInstance  ...
    99+
    2023-05-30
    android
  • 新一代数据集成工具ETLCloud入门实践:实现MySQL到ClickHouse的快速迁移
    背景 大数据(BigData)最重要的是数据,没有数据其他的就无从谈起(如今GPT大热,也是得益于海量数据的采集、存储、计算及治理能力的提升)。大数据项目开发的首要任务就是采集海量数据,这就要求我们具备海量数据采集的能力。 在实际工作中,数...
    99+
    2023-08-18
    MySQL ClickHouse ETLCloud 数据集成工具 可视化数据集成
  • Java中怎么实现单元测试与集成测试
    Java中怎么实现单元测试与集成测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Maven测试代码结构的组织我们知道在Maven工程结构中“src/test”目录是专门用...
    99+
    2023-06-16
  • 怎么在python中实现数据预处理
    这篇文章将为大家详细讲解有关怎么在python中实现数据预处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注...
    99+
    2023-06-14
  • Java中怎么实现一个日志切割清理工具
    本篇文章给大家分享的是有关Java中怎么实现一个日志切割清理工具,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过...
    99+
    2023-06-17
  • shell中怎么实现一个字符编码转换工具
    shell中怎么实现一个字符编码转换工具,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。#!/bin/bash: << mark转码工具,支持UTF-...
    99+
    2023-06-09
  • 怎么在Python项目中生成一个batch数据
    这篇文章将为大家详细讲解有关怎么在Python项目中生成一个batch数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。产生batch数据输入data中每个样本可以有多个特征,和一个标签,最...
    99+
    2023-06-08
  • 利用Java怎么实现一个超时工具类
    本文章向大家介绍利用Java怎么实现一个超时工具类的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程...
    99+
    2023-06-06
  • 如何使用Python实现一个打字速度测试工具来测试你的手速
    这篇文章将为大家详细讲解有关如何使用Python实现一个打字速度测试工具来测试你的手速,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、程序解读本次程序中,我们使用的python库完全是python的内置...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作