Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Xây dựng Web Machine Learning đẹp mắt với Streamlit và Scikit-learn trong Python
Trong thời đại công nghệ phát triển mạnh mẽ, các công cụ trực quan hóa dữ liệu và ứng dụng web tương tác đã trở thành một phần không thể thiếu trong các dự án Machine Learning. Với Streamlit, việc xây dựng giao diện đẹp mắt cho các ứng dụng Machine Learning giờ đây trở nên đơn giản hơn bao giờ hết, chỉ cần sử dụng những đoạn mã Python cơ bản. Kết hợp cùng Scikit-learn, chúng ta có thể nhanh chóng khám phá và thử nghiệm các mô hình phân loại dữ liệu thông qua một ứng dụng web trực quan.
Hướng dẫn này sẽ giúp bạn nắm vững cách sử dụng Streamlit để tạo ra một ứng dụng web Machine Learning, đồng thời triển khai các pipeline phân loại một cách hiệu quả bằng Scikit-learn. Bên cạnh đó, bạn cũng sẽ học được cách tích hợp đồ thị, giao diện trực quan, và các công cụ tương tác giúp ứng dụng dễ dàng tiếp cận hơn với người dùng. Đây là khởi đầu tuyệt vời cho những ai muốn kết hợp sức mạnh của học máy và ứng dụng web.
Cài đặt môi trường trong Python
Để bắt đầu, hãy cài đặt Streamlit và các thư viện cần thiết.
Cài đặt Streamlit
Hãy sử dụng pip
để cài đặt Streamlit (khuyến nghị dùng môi trường ảo venv
hoặc conda
):
pip install streamlit
Cài đặt các thư viện khác
Ứng dụng của chúng ta sẽ sử dụng các thư viện sau:
- Scikit-learn: Hỗ trợ các thuật toán học máy.
- Matplotlib: Dùng để vẽ biểu đồ.
pip install scikit-learn pip install matplotlib
Chạy ứng dụng web
Để kiểm tra Streamlit sau khi cài đặt, bạn có thể chạy ứng dụng mẫu chính thức của Streamlit với lệnh:
Bài viết này được đăng tại [free tuts .net]
streamlit hello
Hoặc chạy file mã Python của riêng bạn:
streamlit run file_name.py
Cách triển khai và thêm các widget (thành phần giao diện) trong Python
Streamlit cho phép bạn tạo các widget tương tác (như nút bấm, hộp lựa chọn, thanh trượt) chỉ với vài dòng mã Python.
Ví dụ sau minh họa cách triển khai giao diện cơ bản với Streamlit:
import streamlit as st # Thư viện Streamlit # Tiêu đề chính của ứng dụng st.title('Ví dụ Streamlit') # Nội dung Markdown st.write(""" # Khám phá các mô hình phân loại và tập dữ liệu Mô hình nào hoạt động tốt nhất? """) # Tạo sidebar để người dùng chọn tập dữ liệu dataset_name = st.sidebar.selectbox( 'Chọn tập dữ liệu', ('Iris', 'Ung thư vú', 'Rượu vang') ) # Tạo thanh trượt để điều chỉnh giá trị K = st.sidebar.slider('Số lượng K', 1, 15) # Vẽ biểu đồ (ví dụ với Matplotlib) import matplotlib.pyplot as plt # Tạo dữ liệu giả lập x1 = [1, 2, 3, 4] x2 = [10, 20, 30, 40] fig = plt.figure() plt.scatter(x1, x2) plt.xlabel('X1') plt.ylabel('X2') plt.title('Biểu đồ mẫu') # Hiển thị biểu đồ trên giao diện st.pyplot(fig)
Khi chạy đoạn mã trên, ứng dụng sẽ hiển thị giao diện gồm:
- Tiêu đề và mô tả.
- Sidebar để chọn tập dữ liệu và điều chỉnh tham số K.
- Biểu đồ được tạo và hiển thị trực tiếp.
Cơ chế dữ liệu và bộ nhớ đệm trong Streamlit trong Python
Streamlit thực thi lại toàn bộ file mã Python mỗi khi người dùng tương tác với widget. Để đảm bảo hiệu suất và tốc độ, Streamlit sử dụng cơ chế bộ nhớ đệm (caching) để tránh tính toán lặp lại.
Bạn có thể sử dụng decorator @st.cache
để lưu trữ kết quả của các hàm:
@st.cache def load_data(dataset_name): # Hàm chỉ thực thi một lần, dữ liệu được lưu trong bộ nhớ đệm. pass
Kết bài
Hướng dẫn này giúp bạn hiểu cách triển khai một ứng dụng web Machine Learning đẹp mắt, tương tác dễ dàng nhờ Streamlit. Những điểm nổi bật của Streamlit bao gồm:
- Tích hợp UI tiện dụng và nhanh chóng.
- Kết hợp tốt với thư viện Scikit-learn để phân tích và huấn luyện mô hình.
- Tạo và hiển thị biểu đồ, bảng số liệu chỉ trong vài dòng lệnh Python.
Hãy thử nghiệm các tập dữ liệu khác nhau và tùy chỉnh ứng dụng để phù hợp với dự án của bạn!