★Streamlit的優勢與安裝
★文字與資料展示元素
★資料視覺化與圖表元素
★多媒體展示元素
★使用者輸入類元件
★版面配置和容器元件
★狀態顯示與流程控制
★機器學習工作流程
★醫療費用預測Web應用
★銷售資料儀表板Web應用
常常看到許多展示AI的網頁非常漂亮,心中都會想說,又要開發AI程式,又要寫網頁,一定是很大的工程吧!但這些漂亮的網頁,很可能也是AI工程師用非常簡單的方法開發出來的,靠的就是最新的Web框架Streamlit。隨著機器學習和資料科學的發展,將複雜的分析結果用簡單易懂的方式展示給非技術人員,變得非常重要。
傳統的Web框架如Flask、FastAPI或Django雖然功能強大,但開發過程常常讓人抓狂,需要寫大量模板和視圖程式。這時,Streamlit這個神奇的Python函數庫出場了!它大大簡化了資料Web應用的開發過程,讓你只需使用熟悉的Python語言,就能快速建構出互動式的機器學習和資料科學Web應用。Streamlit的高效和強大功能,迅速吸引了無數資料科學家和機器學習工程師的目光。
這本書會帶你從安裝、啟動一路學起,並詳細介紹各種展示元素,從文本展示到資料視覺化,從多媒體展示到使用者輸入元件,應有盡有。書中還會教你如何利用Streamlit進行標準的機器學習工作流程,並通過實戰範例,如基於隨機森林演算法的企鵝分類和醫療費用預測應用,讓你實際操作,學以致用。這些內容不僅讓你快速掌握Streamlit,還能大幅提升你在機器學習和資料科學Web應用開發上的效率與樂趣!
作者簡介:
王鑫 編著
資料分析工程師,是一名終身學習者,擁有豐富的Python知識,精通Streamlit、Django、Pygame、Pandas、NumPy、scikit-leam、TensorFlow、Matplotlib、Vega-Altair、Pyomo、Ray等Python函數庫,擅於透過程式設計學習新的知識,熱愛程式設計技術。
作者序
前 言
隨著機器學習和資料科學的發展,將分析結果呈現給非技術人員也變得極為重要。傳統的基於Flask、FastAPI或Django的Web框架需要撰寫大量範本和視圖程式,開發效率較低。Streamlit這個迅速崛起的Python函數庫改變了這一切,它極大地降低了建構資料Web應用的門檻,讓開發者可以使用熟悉的Python語言,快速地建構互動式的機器學習和資料科學Web應用。
Streamlit以其驚人的高效率和強大功能,吸引了許多資料科學家和機器學習工程師。相信透過本書的學習,讀者可以掌握這個優秀Python函數庫的用法,使機器學習和資料科學Web應用的開發變得簡單並富有成效。讓我們開始Streamlit之旅,建造屬於自己的Streamlit Web應用吧!
本書主要內容
第1章介紹Streamlit的優勢、安裝、啟動和關閉,展示Streamlit附帶的非常漂亮的演示專案。
第2章介紹文字類和資料類的展示元素,包括標題展示元素、章節展示元素、子章節展示元素、程式區塊展示元素、說明文字展示元素、Markdown語法展示元素、LaTeX公式文字展示元素、資料框展示元素、Table資料框展示元素、Metric指標類展示元素、JSON資料展示。
第3章介紹資料視覺化和圖表元素,不僅包括Streamlit內建的折線圖、橫條圖、面積圖和地理資料圖表,還包括如何展示其他視覺化函數庫的影像,如Graphviz函數庫影像、Matplotlib函數庫影像、Seaborn函數庫影像、Vega-Altair函數庫影像、Plotly函數庫影像、Bokeh函數庫影像、Pydeck函數庫影像。
第4章介紹多媒體展示元素,包括影像、音訊、影片、表情符號等。
第5章介紹使用者輸入類元件,包括普通按鈕、選項按鈕、下拉按鈕、多選下拉按鈕、數值滑動桿元件、範圍選擇滑動桿元件、下載按鈕、單行文字輸入框元件、數字輸入框元件、多行文本輸入框元件、日期選擇元件、時間選擇元件、檔案上傳元件、拍照元件及顏色撿拾元件。
第6章介紹版面配置和容器元件,包括側邊欄、列容器、標籤、擴充器、容器、佔位容器和多頁面應用。
第7章介紹狀態顯示、流程控制和一些高級特性。
第8章介紹標準的機器學習工作流程,以及如何建構一個基於隨機森林分類演算法的企鵝分類Web應用。
第9章建構一個基於隨機森林回歸演算法的醫療費用預測Web應用,為醫療保險公司的定價提供決策依據。
第10章建構一個超市集團的銷售資料儀表板Web應用,為管理人員提供漂亮的動態資料分析工具。
閱讀建議
本書是一本從入門到實戰的書籍,適合有Python基礎的讀者學習,如果無程式設計經驗,則可先學習Python基礎知識。最好可以按照書中的順序,先學習Streamlit的各種基礎元素和元件用法,如文字、圖表、多媒體、影片、音訊等,為了讓讀者能夠理解並使用各種元素和元件,每節內容都包含了使用說明和豐富範例,也包括程式想法和詳細的操作步驟,實操性很強,可以加深對各種元素和元件的理解,逐漸掌握建構Streamlit應用頁面的流程。
第1~7章屬於基礎篇,可以邊看書邊跟著範例程式和註釋實踐,這樣可以加深印象。每學一個元素和元件都可以實現一個小的Web應用。建議讀者先按照第1章內容架設好開發環境,並成功執行Streamlit附帶的演示專案,感受Streamlit的簡單和強大。別全部看完再實踐,應該是逐章節學習,並配合動手實踐。
第8~10章屬於實戰篇,讀者在掌握了前面的基礎知識後,再透過建構3個不同任務的Web應用來全面掌握Streamlit的開發過程。這裡建議讀者在開發的過程中,如果遇到不熟悉的機器學習或其他方面的基礎知識,則可以擱置起來,先完成整個Web應用,建立信心,後續當有意願了解其他方面的知識時可以查閱相關資料。
致 謝
感謝Streamlit及其社區的貢獻者,為我們提供了這麼簡單、強大、美觀的Python開 源庫。
感謝我的奶奶、爸爸和妹妹,是你們一直以來的支持和鼓勵,讓我有動力和激情投入書籍創作中。
感謝我的朋友、同學和老師,是你們的陪伴、幫助和教導,讓我樹立了終身學習、勇攀知識高峰的信仰。
感謝我的領導和同事,是你們的包容和幫助,讓我有機會接觸到Python語言。
感謝寰球游泳健身俱樂部,為我撰寫本書提供了相對適宜的寫作環境和健身環境。
感謝北京清華大學出版社趙佳霓編輯,在觀看我的Streamlit相關影片後,主動聯繫我,邀請我撰寫本書,並在審稿過程中給予了許多寶貴意見和幫助。
感謝所有的讀者,能與大家分享知識給我莫大的滿足感,期待與讀者有更多交流。
由於時間倉促,書中難免存在不妥之處,請讀者見諒,並提寶貴意見。
王鑫
2024年2月
前 言
隨著機器學習和資料科學的發展,將分析結果呈現給非技術人員也變得極為重要。傳統的基於Flask、FastAPI或Django的Web框架需要撰寫大量範本和視圖程式,開發效率較低。Streamlit這個迅速崛起的Python函數庫改變了這一切,它極大地降低了建構資料Web應用的門檻,讓開發者可以使用熟悉的Python語言,快速地建構互動式的機器學習和資料科學Web應用。
Streamlit以其驚人的高效率和強大功能,吸引了許多資料科學家和機器學習工程師。相信透過本書的學習,讀者可以掌握這個優秀Python函數庫的用法,使機器學習和資料科學Web應用的開發...
目錄
基 礎 篇
第1章 Streamlit的介紹及安裝
1.1 Streamlit是什麼
1.2 Streamlit的優勢及特點
1.3 Streamlit的安裝
1.4 Streamlit演示專案介紹
1.5 關閉專案執行
1.6 啟動自訂的專案
1.7 本章小結
第2章 文字類和資料類展示的元素
2.1 普通文字展示元素
2.2 標題展示元素
2.3 章節展示元素
2.4 子章節展示元素
2.5 程式區塊展示元素
2.6 說明文字展示元素
2.7 Markdown語法展示元素
2.8 LaTeX公式文字展示元素
2.9 資料框展示元素
2.10 Table資料框展示元素
2.11 Metric指標類展示元素
2.12 JSON資料展示元素
2.13 超級方法write()展示各類元素
第3章 資料視覺化和圖表元素
3.1 內建折線圖
3.2 內建橫條圖
3.3 內建面積圖
3.4 內建帶點的地圖
3.5 展示Graphviz函數庫影像
3.6 展示Matplotlib函數庫影像
3.7 展示Seaborn函數庫影像
3.8 展示Vega-Altair函數庫影像
3.9 展示Plotly函數庫影像
3.10 展示Bokeh函數庫影像
3.11 展示Pydeck函數庫影像
第4章 多媒體展示元素
4.1 影像
4.2 音訊
4.3 影片
4.4 表情符號
第5章 使用者輸入類元件
5.1 普通按鈕
5.2 選項按鈕
5.3 核取方塊
5.4 下拉按鈕
5.5 多選下拉按鈕
5.6 數值滑動桿元件
5.7 範圍選擇滑動桿元件
5.8 下載按鈕
5.9 單行文字輸入框元件
5.10 數字輸入框元件
5.11 多行文本輸入框元件
5.12 日期選擇元件
5.13 時間選擇元件
5.14 檔案上傳元件
5.15 拍照元件
5.16 顏色撿拾元件
第6章 版面配置和容器元件
6.1 側邊欄
6.2 列容器
6.3 標籤
6.4 擴充器
6.5 容器
6.6 佔位容器
6.7 多頁面應用
第7章 狀態顯示、流程控制及高級特性
7.1 狀態顯示
7.2 控制流程
7.3 高級特性
實 戰 篇
第8章 企鵝分類專案
8.1 標準的機器學習工作流程
8.2 企鵝分類Web應用
第9章 醫療費用預測Web應用
9.1 資料集介紹
9.2 資料前置處理
9.3 選擇回歸演算法建立模型
9.4 將模型儲存到檔案中
9.5 在Streamlit Web應用中使用預先訓練的模型
第10章 銷售資料儀表板Web應用
10.1 資料集介紹
10.2 讀取超市銷售資料
10.3 建立篩選維度的側邊欄
10.4 建立視覺化圖表
10.5 建立關鍵指標資訊
10.6 組織資訊調整版面配置
基 礎 篇
第1章 Streamlit的介紹及安裝
1.1 Streamlit是什麼
1.2 Streamlit的優勢及特點
1.3 Streamlit的安裝
1.4 Streamlit演示專案介紹
1.5 關閉專案執行
1.6 啟動自訂的專案
1.7 本章小結
第2章 文字類和資料類展示的元素
2.1 普通文字展示元素
2.2 標題展示元素
2.3 章節展示元素
2.4 子章節展示元素
2.5 程式區塊展示元素
2.6 說明文字展示元素
2.7 Markdown語法展示元素
2.8 LaTeX公式文字展示元素
2.9 資料框展示元素
2.10 Table資料框展示元素
2.11 Metric指標類展示元素
2.12 JSO...