小程序中input标签没有反应_鸢尾花预测:如何创建机器学习Web应用程序?

全文共2485字,预计学习时长12分钟

c6c8f5275d524736f6b297a2436d7637.png

图源:unsplash

数据科学的生命周期主要包括数据收集、数据清理、探索性数据分析、模型构建和模型部署。作为数据科学家或机器学习工程师,能够部署数据科学项目非常重要,这有助于完成数据科学生命周期。通过既有框架(如Django或Flask)对传统机器学习模型进行部署,可能是一项艰巨耗时的任务。

本文就将展示如何在Python库中使用streamlit,用不到50行的代码构建一个简单的基于机器学习的数据科学web应用程序。

26002e5ccc20612b044ab80dc2bca416.png

数据科学生命周期

96b3fbe8792f6fde0fdbb91170361e69.png

鸢尾花预测应用程序概述

我们将构建一个简单的机器学习web应用程序,用于预测鸢尾花的类标签,包括setosa、versicolor和virginica。这需要用到三个Python库,即streamlit、pandas和scikitlearn。

应用程序的概念流程主要由两个部分组成:前端和后端。

fc0f4bbc784de220dac90491407a5e35.png

图源:unsplash

在前端,左侧栏将接受与鸢尾花特征(如花瓣长度、花瓣宽度、萼片长度和萼片宽度)相关的输入参数。这些特性会被传送到后端,后端的训练模型将预测类标签作为输入参数的函数,预测结果再发回前端显示。

在后端,用户输入的参数将被保存到一个数据帧中作为测试数据。同时,利用scikit-learn库中的随机森林算法建立分类模型。最后,将该模型应用于预测用户输入的数据,并将预测的类标签返回到三种花卉类型:setosa、versicolor或virginica。此外,该模型还能够预测概率,从而辨别预测类标签的相对可信度。

安装必备库

本教程使用到的三个Python库——streamlit, pandas 和 scikit-learn,可以通过pip install命令进行安装。

安装streamlit:

pip install streamlit

安装pandas:

pip install pandas

安装scikit-learn:

pip install -U scikit-learn

web应用程序代码

现在就来一探究竟吧!我们要构建的应用程序只需不到50行代码(确切地说是48行),如果删除空行和注释(占12行),就可以降至36行。

import streamlit as st         import pandas as pd         from sklearn import datasets         from sklearn.ensemble importRandomForestClassifier                       st.write("""         # Simple Iris Flower Prediction App         This app predicts the **Iris flower** type!         """)                       st.sidebar.header('User InputParameters')                       defuser_input_features():             sepal_length = st.sidebar.slider('Sepal length', 4.3, 7.9, 5.4)             sepal_width = st.sidebar.slider('Sepal width', 2.0, 4.4, 3.4)             petal_length = st.sidebar.slider('Petal length', 1.0, 6.9, 1.3)             petal_width = st.sidebar.slider('Petal width', 0.1, 2.5, 0.2)             data = {'sepal_length': sepal_length,                     'sepal_width': sepal_width,                     'petal_length': petal_length,                     'petal_width': petal_width}             features = pd.DataFrame(data, index=[0])             return features                       df =user_input_features()                       st.subheader('User Inputparameters')         st.write(df)                       iris = datasets.load_iris()         X= iris.data         Y= iris.target                       clf =RandomForestClassifier()         clf.fit(X, Y)                       prediction = clf.predict(df)         prediction_proba= clf.predict_proba(df)                       st.subheader('Class labels andtheir corresponding index number')         st.write(iris.target_names)                       st.subheader('Prediction')         st.write(iris.target_names[prediction])         #st.write(prediction)                       st.subheader('PredictionProbability')         st.write(prediction_proba)
96b3fbe8792f6fde0fdbb91170361e69.png

逐行解读代码

来看看每一行(或代码块)的作用:

导入库

· 第1-4行:导入streamlit 和 pandas库,分别称为st和pd。具体来说,从scikitlearn库中(sklearn)导入datasets软件包,然后使用loader函数加载鸢尾花数据集(第30行)。最后将专门从sklearn.ensemble软件包中导入RandomForestClassifier()函数。

侧栏面板

· 第11行:通过使用st.sidebar.header()函数来添加侧栏的标题文本。请注意,在st和header之间使用sidebar(所以是st.sidebar.header()函数)可以向streamlit库传达信息,把标题文本放在侧栏面板中。

· 第13-23行:此处创建一个名为user_input_features()的自定义函数,该函数主要是将用户输入的参数进行整合(即4个花的特征,可以通过滑动条接受用户指定的值),并以数据帧的形式返回结果。

值得注意的是,每个输入参数都将通过滑动按钮接受用户指定的值,如st.sidebar.slider(‘Sepal length’, 4.3, 7.9, 5.4)表示萼片长度。四个输入参数中的首个参数对应于在滑动按钮上方指定的标签文本,在本例中为“萼片长度”,而接下来的两个值对应于滑动条的最小值和最大值。最后,末尾输入参数表示加载web应用程序时选择的默认值,该值设置为5.4。

模型建立

· 第25行:如上所述,以数据帧形式整合的用户输入参数信息将分配到df变量中。

· 第30-38行:该代码块适用于实际模型构建阶段。

第30行—从sklearn.datasets软件包中加载鸢尾花数据集,并将其分配给iris变量;

第31行—创建X变量,包含iris.data中提供的4个花的特征(即萼片长度,萼片宽度,花瓣长度和花瓣宽度);

第32行—创建Y变量,与iris.target中提供的鸢尾花类标签相关;

第34行—将随机森林分类器(特别是RandomForestClassifier()函数)分配给clf变量;

第35行—通过clf.fit()函数使用X和Y变量作为输入参数来训练模型。这本质上意味着通过使用4个花的特征(X)和类标签(Y)训练,来建立分类模型。

fd366d73e5f8059d4ac708f29013d21a.png

图源:unsplash

主面板

· 第6-9行:使用st.write()函数输出文本,在本示例中使用该函数,以标记格式输出此应用程序的标题。使用#符号表示标题文本(第7行),而后一行(第8行)提供应用程序的正常描述性文本。

· 第27-28行:第一部分将给出“User Input parameters”的子标题文本(使用st.subheader函数进行分配)。下一行将通过使用st.write()函数来显示df数据帧的内容。

· 第40-41行:在主面板的第二部分中,输出类标签(即setosa、versicolor和virginica)及其相应索引号(即0、1和2)。

· 第43-44行:主面板的第三部分显示的是预测类标签。此处需要注意的是,prediction变量的内容(第45行)是预测的类索引号,如果要显示类标签(即setosa、versicolor和virginica),则需在iris.target_names[prediction]的括号内使用prediction变量作为参数。

· 第47-48行:主面板的第四部分也就是最后一部分显示了预测概率。该概率值能够识别预测类标签的相对可信度(概率值越高,该预测的可信度就越高)。

96b3fbe8792f6fde0fdbb91170361e69.png

运行web应用程序

因此,web应用程序的代码被保存到iris-ml-app.py文件中,现在准备运行。可以在命令提示符(终端窗口)中输入以下命令来运行该应用程序:

streamlit run iris-ml-app.py

之后会看到以下消息:

> streamlit run iris-ml-app.pyYou can now view yourStreamlit app in your browser.Local URL: http://localhost:8501Network URL: http://10.0.0.11:8501

几秒钟会弹出一个互联网浏览器窗口,通过网址http://localhost:8501引导用户进入创建的web应用程序 ,如下所示:

b1ea26b882bc99bc1b039395a6d40f60.png

鸢尾花预测应用程序截图。点击左上角按钮(顶部窗口)可以显示侧面板(底部窗口)。

大功告成!用Python创建了机器学习web应用程序就是这么简单,快去亲自操作一下吧。

798dc83cac59465407060b30b3c2d104.png

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

潢川高中2021高考成绩查询,潢川高中2020年秋季学期高一期中考试成绩分析

潢川高中2020年秋季学期高一期中语文试卷分析分析人:李四海本次试卷结构与高考试卷结构一致,局部作了调整。如默写由6分增到10分,散文阅读由15分压到13分,文言文翻译共8分。经学科组集体讨论,作如下分析:一…

【牛客 - 280A】勘测(fib数列,思维,打表)

题干: Actci偶然发现了一个矿洞,这个矿洞的结构类似与一棵二叉树,Actci发现的矿洞恰好位于根节点处,为了尽快挖掘,Actci找来了她的小伙伴们来帮忙,由于地质原因,每天小伙伴们只能打通到一条到子…

win10安装ensp启动40_装系统不求人,快速制作启动U盘,傻瓜式重装WIN10

在以前如果我们的电脑系统损坏,无法进入WINDOWS系统,在需要重装WINDOWS系统时,一般的做法是,下载一个WINDOWS系统镜像,制作一个PE启动盘,在PE里安装系统镜像。这样传统的WINDOWS系统重装过程麻烦且耗时。而…

如何拆计算机主机箱,一种方便拆卸的计算机主机箱的制作方法

本发明涉及计算机设备技术领域,具体为一种方便拆卸的计算机主机箱。背景技术:计算机主机指计算机硬件系统中用于放置主板及其他主要部件的容器,通常包括CPU、内存、硬盘、光驱、电源、以及其他输入输出控制器和接口,如控制器、显卡…

*【牛客 - 326B】背单词(线性dp)

题干: winterzz1准备考4级了,现在winterzz1决定把世界上所有单词都背一遍,winterzz1发现任意一个单词最多有A个连续的元音,最多有B个连续的辅音。且单词最长长度为N,winterzz1问你在满打满算的情况他需要背多少单词&a…

java word转html 乱码 poi,java word转html poi

java word转html poi[2021-01-29 15:50:39] 简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐:…

教练,我想打ACM

又到了一年期末。。。慵懒中、、、不想复习、、、不想看课本也不想做题、、、不想听课也不想看笔记、、、、然而莫名想刷题??然而现在并不是刷题的时候啊、、、或许期末完了之后才是肝题的时候、、、然而现在就是什么都不想做啊、、难受。欠了很多套训练…

请写出sfr和sbit的语句格式_习题_C51语言答案

一、填空1.KeiL C51软件中,工程文件的扩展名是___UV2_______,编译连接后生成可烧写的文件扩展名是___HEX_________。2.C51支持的指针有一般指针和存储器指针。3.C51中,没有专门的循环语句,我们可…

未来计算机的功能猜想,全方位猜想,未来计算机发展详细预测

全方位猜想,未来计算机发展详细预测随着计算机技术的发展,PC将成为我们工作上的工具,生活中的控制中心是必然的事情。从网友的文章中,我们可以了解到计算机的未来充满了变数。性能的大幅度提高是不可置疑的,而实现性能…

【HDU - 5500】 Reorder the Books (思维)

题干: dxy has a collection of a series of books called "The Stories of SDOI",There are n(n≤19)n(n≤19) books in this series.Every book has a number from 11 to nn. dxy puts these books in a book stack with the order of their numbers …

github怎么切换到gitee_AOSP-RISCV 的开源仓库在 Gitee 上新建了镜像

前阵子在知乎上给大家介绍了我们在移植 AOSP 到 RISC-V 上的第一步: 汪辰:第一个 RISC-V 上的“Android 最小系统”​zhuanlan.zhihu.com目前所有的工作成果都是开源在 Github 上的,移植改动涉及的子仓库达到 9 个,所有源码下载下来达到 537M…

联想微型计算机拆,联想10064一体机拆机,联想一体机硬盘怎么拆

电脑现在在我们生活中有着非常广泛的用途,不论是我们的工作还是学习都离不开电脑的辅助。我们工作时可以用电脑进行记录档案资料,学习时可以用电脑查阅资料,及时解决一些学习上遇到的疑问。有了电脑之后我们的工作学习效率都得到了非常大的提…

微型计算机原理中断实验,微机原理实验---中断控制实验.doc

微机原理实验---中断控制实验深 圳 大 学 实 验 报 告课程名称: 微机计算机设计实验项目名称: 8259 中断控制实验学院: 信息工程学院专业: 电子信息工程指导教师:报告人: 学号: 2009100000班级&…

【CodeForces - 510D】Fox And Jumping(dp,stlmap,数论的性质)

题干: Fox Ciel is playing a game. In this game there is an infinite long tape with cells indexed by integers (positive, negative and zero). At the beginning she is standing at the cell 0. There are also n cards, each card has 2 attributes: len…

db2 linux 平台下迁移_Linux 下的 DB2数据库的迁移

前言:DB2 Universal Database™(DB2 UDB) 有一对非常有用的工具,可以帮助您实现这种跨平台的备份与恢复功能。 db2move 工具利用了 DB2 的数据移动工具(export 和 import 或 load)来移动数据库表。然而,由于数据库的内容远远不止于用户表&…

加拿大红河学院计算机专业,加拿大红河学院

加拿大红河学院是加拿大曼省最大的由曼省财政支持的公立高等专科学院,是曼省规模最大、课程最全面的学院,也是加拿大最大的学院之一。近年来,加拿大红河学院受到国人狂热追捧,申请人数逐年增长。加拿大红河学院专长于商业管理与国…

【CodeForces - 471C】MUH and House of Cards (思维,找规律)

题干: Polar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo of Kiev decided to build a house of cards. For that theyve already found a hefty deck of n playing cards. Lets describe the house they want t…

哪个读书app可以导入txt_QQ阅读iphone版怎么导入电子书 三种手机QQ阅读器导入本地图书图文教程...

QQ阅读iphone版是一款比较方便的移动终端阅读软件,除了从电子书城下载或者购买电子书外,我们也可以把自己电脑中的电子书上传到QQ阅读软件中,不过果粉们都知道苹果手机没有文件管理器,无法使用qq阅读直接点击查看本地小说&#xf…

【CodeForces - 471B】MUH and Important Things (模拟,细节)

题干: Its time polar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo of Kiev got down to business. In total, there are ntasks for the day and each animal should do each of these tasks. For each task, t…

大一计算机绩点3算什么水平,绩点只有3?我可以解释一下

放张图文无关压压惊最近开始申请学业奖学金了,大家开始计算自己的绩点,我也算了一下自己的成绩,结果是比3多一点点(如果没有算错的话)。我觉得这是一个比较合适的数字,没有比3小已经很满足了,毕竟学的并不好&#xff0…