」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 簡化:ML應用程序創建的魔術棒

簡化:ML應用程序創建的魔術棒

發佈於2025-03-25
瀏覽:487

是一个强大的开放式框架框架,可以为创建学习,只需几行Python代码。 它很简单,直觉,,这是对初学者和经验丰富的开发人员的绝佳工具,他们希望快速部署机器学习模型。 在此博客中,我将使用RandomForeStClassifier。,使用

构建基本的简化应用程序和

开始

在进入项目之前,让我们浏览一些基本的简化功能,以适应框架。您可以使用以下命令安装简化:

PIP安装简化 一旦安装,您就可以通过创建一个python文件,例如app.py来启动第一个应用程序,然后使用以下方式运行它:

简化运行app.py

现在,让我们探索简化的核心功能:

1。编写标题并显示文本

导入简报为ST #写标题 圣提特(“ Hello World”) #显示简单文字 St.Write(“显示一个简单的文本”)

pip install streamlit


2。显示dataframes

导入大熊猫作为pd #创建数据框 df = pd.dataframe({ “第一列”:[1,2,3,4], “第二列”:[5,6,7,8] })) #显示数据框 St.Write(“显示数据框”) 圣沃特(DF)

pip install streamlit


3。用图表

可视化数据

导入numpy作为NP #生成随机数据 Chart_data = pd.dataframe( np.random.randn(20,4),列= ['a','b','c','d'] ) #显示行图 st.line_chart(Chart_data) [2

4。用户互动:文本输入,滑块和选择框

import streamlit as st

# Writing a title
st.title("Hello World")

# Display simple text
st.write("Displaying a simple text")


slemlit

启用交互式小部件,例如文本输入,滑块和选择基于用户输入动态更新的框。 Streamlit: The Magic Wand for ML App Creation #文本输入 name = st.text_input(“您的名字是:”) 如果名称: St.Write(f'hello,{name}') # 滑块 age = st.Slider(“选择您的年龄:”,0,100,25) 如果年龄: St.Write(您的年龄是:{age}') #选择框 选择= [“ Python”,“ Java”,“ JavaScript”] lang = St.Selectbox(“最喜欢的编程语言”,选择) 如果Lang: St.Write(f'favorite编程语言为{lang}')

[2

5。文件上传

您可以允许用户上传文件,并在

import pandas as pd

# Creating a DataFrame
df = pd.DataFrame({
    "first column": [1, 2, 3, 4],
    "second column": [5, 6, 7, 8]
})

# Display the DataFrame
st.write("Displaying a DataFrame")
st.write(df)


#CSV文件的文件上传器 file = st.file_uploader('选择CSV文件','CSV') 如果文件: data = pd.read_csv(文件) St.Write(数据) Streamlit: The Magic Wand for ML App Creation [2

使用简化构建机器学习项目

既然您熟悉基础知识,那么让我们开始创建一个

import numpy as np

# Generating random data
chart_data = pd.DataFrame(
    np.random.randn(20, 4), columns=['a', 'b', 'c', 'd']
)

# Display the line chart
st.line_chart(chart_data)


Scikit-Learn

Streamlit: The Magic Wand for ML App Creation

加载数据集。

训练RandomForestClassifier。 允许用户使用滑块输入功能。
基于输入功能进行预测物种。


# Text input
name = st.text_input("Your Name Is:")
if name:
    st.write(f'Hello, {name}')

# Slider
age = st.slider("Select Your Age:", 0, 100, 25)
if age:
    st.write(f'Your Age Is: {age}')

# Select Box
choices = ["Python", "Java", "Javascript"]
lang = st.selectbox('Favorite Programming Language', choices)
if lang:
    st.write(f'Favorite Programming Language is {lang}')


首先,让我们安装必要的库:Streamlit: The Magic Wand for ML App Creation

PIP安装简化Scikit-Learn Numpy Pandas

2。导入库和加载数据
让我们导入必要的库并加载虹膜数据集: 导入简报为ST 导入大熊猫作为pd 来自sklearn.datasets import load_iris 从sklearn.semblection incort intim #用于有效加载的缓存数据 @st.cache_data def load_data(): iris = load_iris() df = pd.dataframe(iris.data,列= iris.feature_names) df [“物种”] = iris.target 返回df,iris.target_names df,target_name = load_data()


# File uploader for CSV files
file = st.file_uploader('Choose a CSV file', 'csv')

if file:
    data = pd.read_csv(file)
    st.write(data)


3。训练机器学习模型

一旦获得数据,我们将根据其特征来训练随机foreStclassifier,以预测花的物种:Streamlit: The Magic Wand for ML App Creation

#火车RandomForestClassifier 模型= RandomForestClassifier() model.fit(df.iloc [:,:-1],df [“物种”])

4。创建输入界面

现在,我们将在侧边栏中创建滑块,以允许用户输入以进行预测: #用户输入的侧栏 St.Sidebar.title(“输入功能”) sepal_length = st.sidebar.slider(“ sepal length”,float(df ['sepal length(cm)']。min()),float(df ['sepal length(cm)']。max())) sepal_width = st.sidebar.slider(“ sepal width”,float(df ['sepal width(cm)']。min()),float(df ['sepal width(cm)']。max()))))))))))))))) petal_length = st.sidebar.slider(“花瓣长度”,float(df ['花瓣长度(cm)']。min()),float(df ['花瓣长度(cm)']。max()))。 petal_width = st.sidebar.slider(“花瓣宽度”,float(df ['花瓣宽度(cm)']。min()),float(df ['花瓣宽度(cm)']。max())) 5。预测物种 获得用户输入后,我们将使用训练有素的模型进行预测:

#准备输入数据 input_data = [[[sepal_length,sepal_width,petal_length,petal_width]]] # 预言 预测= model.predict(input_data) prediction_species = target_name [预测[0]] #显示预测 St.Write(“预测:”) St.Write(f'predixed物种是{prediction_species}') 这将看起来像:

[2 [2 最后,
    slemlit
  • 使创建和部署机器学习Web界面非常容易。 ?在仅几行代码中,我们构建了一个交互式应用程序?这使用户能够输入特征并预测花的种类?使用机器学习模型。 ??
  • 快乐编码! ?
版本聲明 本文轉載於:https://dev.to/jagroop2001/streamlit-the-magic-wand-for-ml-app-creation-43i8?1如有侵犯,請聯繫[email protected]刪除
最新教學 更多>
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
    程式設計 發佈於2025-04-22
  • 如何使用Depimal.parse()中的指數表示法中的數字?
    如何使用Depimal.parse()中的指數表示法中的數字?
    在嘗試使用Decimal.parse(“ 1.2345e-02”中的指數符號表示法表示的字符串時,您可能會遇到錯誤。這是因為默認解析方法無法識別指數符號。 成功解析這樣的字符串,您需要明確指定它代表浮點數。您可以使用numbersTyles.Float樣式進行此操作,如下所示:[&& && && ...
    程式設計 發佈於2025-04-22
  • 如何在無序集合中為元組實現通用哈希功能?
    如何在無序集合中為元組實現通用哈希功能?
    在未訂購的集合中的元素要糾正此問題,一種方法是手動為特定元組類型定義哈希函數,例如: template template template 。 struct std :: hash { size_t operator()(std :: tuple const&tuple)const {...
    程式設計 發佈於2025-04-22
  • JavaScript計算兩個日期之間天數的方法
    JavaScript計算兩個日期之間天數的方法
    How to Calculate the Difference Between Dates in JavascriptAs you attempt to determine the difference between two dates in Javascript, consider this s...
    程式設計 發佈於2025-04-22
  • Java為何無法創建泛型數組?
    Java為何無法創建泛型數組?
    通用陣列創建錯誤 arrayList [2]; JAVA報告了“通用數組創建”錯誤。為什麼不允許這樣做? 答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<my...
    程式設計 發佈於2025-04-22
  • Java數組中元素位置查找技巧
    Java數組中元素位置查找技巧
    在Java數組中檢索元素的位置 利用Java的反射API將數組轉換為列表中,允許您使用indexof方法。 (primitives)(鏈接到Mishax的解決方案) 用於排序陣列的數組此方法此方法返回元素的索引,如果發現了元素的索引,或一個負值,指示應放置元素的插入點。
    程式設計 發佈於2025-04-22
  • Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    Async Void vs. Async Task在ASP.NET中:為什麼Async Void方法有時會拋出異常?
    在ASP.NET async void void async void void void void void的設計無需返回asynchroncon而無需返回任務對象。他們在執行過程中增加未償還操作的計數,並在完成後減少。在某些情況下,這種行為可能是有益的,例如未期望或明確預期操作結果的火災和...
    程式設計 發佈於2025-04-22
  • 使用jQuery如何有效修改":after"偽元素的CSS屬性?
    使用jQuery如何有效修改":after"偽元素的CSS屬性?
    在jquery中了解偽元素的限制:訪問“ selector 嘗試修改“:”選擇器的CSS屬性時,您可能會遇到困難。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    程式設計 發佈於2025-04-22
  • 如何使用組在MySQL中旋轉數據?
    如何使用組在MySQL中旋轉數據?
    在關係數據庫中使用mySQL組使用mySQL組進行查詢結果,在關係數據庫中使用MySQL組,轉移數據的數據是指重新排列的行和列的重排以增強數據可視化。在這裡,我們面對一個共同的挑戰:使用組的組將數據從基於行的基於列的轉換為基於列。讓我們考慮以下查詢: select data d.data_ti...
    程式設計 發佈於2025-04-22
  • 如何簡化PHP中的JSON解析以獲取多維陣列?
    如何簡化PHP中的JSON解析以獲取多維陣列?
    php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。要簡化過程,建議將JSON作為數組而不是對象解析。 執行此操作,將JSON_DECODE函數與第二個參數設置為true:[&&&&& && &&&&& json = JSON = JSON_DECODE($ ...
    程式設計 發佈於2025-04-22
  • PHP與C++函數重載處理的區別
    PHP與C++函數重載處理的區別
    作為經驗豐富的C開發人員脫離謎題,您可能會遇到功能超載的概念。這個概念雖然在C中普遍,但在PHP中構成了獨特的挑戰。讓我們深入研究PHP功能過載的複雜性,並探索其提供的可能性。 在PHP中理解php的方法在PHP中,函數超載的概念(如C等語言)不存在。函數簽名僅由其名稱定義,而與他們的參數列表無關...
    程式設計 發佈於2025-04-22
  • PHP陣列鍵值異常:了解07和08的好奇情況
    PHP陣列鍵值異常:了解07和08的好奇情況
    PHP數組鍵值問題,使用07&08 在給定數月的數組中,鍵值07和08呈現令人困惑的行為時,就會出現一個不尋常的問題。運行print_r($月份)返回意外結果:鍵“ 07”丟失,而鍵“ 08”分配給了9月的值。 此問題源於PHP對領先零的解釋。當一個數字帶有0(例如07或08)的前綴時,PHP...
    程式設計 發佈於2025-04-22
  • 為什麼不使用CSS`content'屬性顯示圖像?
    為什麼不使用CSS`content'屬性顯示圖像?
    在Firefox extemers屬性為某些圖像很大,&& && && &&華倍華倍[華氏華倍華氏度]很少見,卻是某些瀏覽屬性很少,尤其是特定於Firefox的某些瀏覽器未能在使用內容屬性引用時未能顯示圖像的情況。這可以在提供的CSS類中看到:。 googlepic { 內容:url(&...
    程式設計 發佈於2025-04-22
  • 在PHP中如何高效檢測空數組?
    在PHP中如何高效檢測空數組?
    在PHP 中檢查一個空數組可以通過各種方法在PHP中確定一個空數組。如果需要驗證任何數組元素的存在,則PHP的鬆散鍵入允許對數組本身進行直接評估:一種更嚴格的方法涉及使用count()函數: if(count(count($ playerList)=== 0){ //列表為空。 } 對...
    程式設計 發佈於2025-04-22
  • Go web應用何時關閉數據庫連接?
    Go web應用何時關閉數據庫連接?
    在GO Web Applications中管理數據庫連接很少,考慮以下簡化的web應用程序代碼:出現的問題:何時應在DB連接上調用Close()方法? ,該特定方案將自動關閉程序時,該程序將在EXITS EXITS EXITS出現時自動關閉。但是,其他考慮因素可能保證手動處理。 選項1:隱式關閉終...
    程式設計 發佈於2025-04-22

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3