小程序中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分。经学科组集体讨论,作如下分析:一…

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

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

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

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

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即可。推荐:…

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

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

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

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

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

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

【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…

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

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

不能用了 重装系统git_怎么用光盘重装系统?

身边没有U盘,电脑无法进入操作系统,只有一个系统光盘如何给电脑重装系统呢?受条件限制不能通过小白在线安装和U盘重装,今天教大家怎么用光盘重装系统吧。光盘重装系统准备工作1、保证电脑带有光驱功能,并且光驱处于正常…

浙江经济职业技术学院计算机排名,浙江经济职业技术学院排名第几

关于浙江经济职业技术学院排名的问题考生问: 关于浙江经济职业技术学院的排名,我想抛给小编姐姐几个问题哦。一、浙江经济职业技术学院今年排名第几?对,指的是全国千余所专科院校当中的排名哦;二、浙江经济职业技术学院…

python去除图像光照不均匀_低光照环境下图像增强相关

Low-Light Image Enhancement via a Deep Hybrid Network [TIP2019]Underexposed Photo Enhancement using Deep Illumination Estimation[CVPR2019]---------Low-Light Image Enhancement via a Deep Hybrid Network [TIP2019]作者提出一个混合的网络来同时学习内容&#xff0…

w10计算机无法打印,老司机解答win10系统电脑无法打印的详细技巧

大家在使用电脑工作的时候会遇到win10系统电脑无法打印的问题,于是就有一些朋友到本站咨询win10系统电脑无法打印问题的解决步骤。解决win10系统电脑无法打印的问题非常简单,只需要你依照1、请确保打印机已打开并连接到你的电脑。 2、如果仍然无法工作&…

vb外部调用autocad_AutoCAD教程之图块的各种相关操作和概念

制图过程中,有时常需要插入某些特殊符号供图形中使用,此时就需要运用到图块及图块属性功能。利用图块与属性功能绘图,可以有效地提高作图效率与绘图质量。也是绘制复杂图形的重要组成部分。一、图块的特点图块是一组图形实体的总称&#xff0…

【CodeForces - 520C】DNA Alignment (快速幂,思维)

题干: Vasya became interested in bioinformatics. Hes going to write an article about similar cyclic DNA sequences, so he invented a new method for determining the similarity of cyclic sequences. Lets assume that strings s and t have the same l…

echart 动画 饼图_echarts构建关系图,节点可收缩和展开,可添加点击事件

echarts下载及使用ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),…

三菱socket通信实例_三菱自动化产品相关知识整理汇总

先从应用最广泛的PLC产品来说下:小型机:FX3S、FX3G、FX3U、FX5U 中型机:L系列大型机:Q系列、R系列Q是比较老的产品,也是现在大型机里面应用比较普遍的产品,在Q之后开发出性价比比较高的产品L系列和性能更高…

英语人机考试计算机算分吗,英语人机对话考试技巧

1英语 人机对话考试技巧目前要在英语口语人机对话中获得好的成绩,除了了解测试的特点之外,还需掌握一定的技巧、这对提高英语口语人机对话成绩将起到事半功倍的作用。接下来小编告诉你英语人机对话考试技巧。调整心态,临场莫慌听力不同于其他…

玛纽尔扫地机器人怎样_扫地机器人哪个牌子好?满足日常清洁需求才值得推荐...

随着科技的发展,越来越多的家庭入手扫地机器人来代替日常打扫,而扫地机器人以其高智能化、自动化和便捷的清洁方式也获得了大部分家庭的喜爱。从市面上出售的扫地机器人来看,就清洁方面足以满足大部分家庭的需求,但是更进一步的定位巡航技术、扫拖一体功能以及强劲的续航保证,却…

【牛客 - 317D】小a与黄金街道(数论,tricks)

题干: 链接:https://ac.nowcoder.com/acm/contest/317/D 来源:牛客网 小a和小b来到了一条布满了黄金的街道上。它们想要带几块黄金回去,然而这里的城管担心他们拿走的太多,于是要求小a和小b通过做一个游戏来决定最…