前言
隨著機器學習和資料科學的發展,將分析結果呈現給非技術人員也變得極為重要。傳統的基於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月