Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Giới thiệu thư viện Scikit-learn cho người mới học ML
Hướng Dẫn Đồ ÁnLập Trình AI

Giới thiệu thư viện Scikit-learn cho người mới học ML

Chia sẻ
Chia sẻ

Scikit-learn là một trong những thư viện học máy phổ biến nhất trong hệ sinh thái Python, được sử dụng rộng rãi cho cả nghiên cứu và ứng dụng thực tế. Với giao diện đơn giản, linh hoạt và khả năng tích hợp tốt với các thư viện khác như NumPy, Pandas và Matplotlib, Scikit-learn trở thành công cụ không thể thiếu cho bất kỳ ai bắt đầu hành trình học máy.

Nếu bạn muốn nắm vững kiến thức cơ bản về xử lý dữ liệu, hãy tham khảo bài Hướng dẫn tiền xử lý dữ liệu sạch để huấn luyện mô hình tốt hơn. Ngoài ra, bài Phân tích dữ liệu bán hàng bằng Python và PandasỨng dụng KNN phân loại khách hàng theo độ tuổi sẽ giúp bạn làm quen với Pandas và các mô hình học máy đơn giản trước khi khám phá Scikit-learn.

Scikit-learn là gì?

Scikit-learn là một thư viện mã nguồn mở của Python được xây dựng trên NumPy, SciPy và matplotlib. Nó cung cấp một bộ công cụ toàn diện cho các tác vụ học máy như phân loại (classification), hồi quy (regression), phân cụm (clustering), giảm chiều dữ liệu (dimensionality reduction), lựa chọn mô hình (model selection) và tiền xử lý dữ liệu (data preprocessing).

Cài đặt Scikit-learn và chuẩn bị môi trường

Scikit-learn có thể được cài đặt dễ dàng thông qua pip. Trên Google Colab hoặc Jupyter Notebook, bạn chỉ cần chạy lệnh sau để cài đặt các thư viện cần thiết.

!pip install scikit-learn pandas numpy matplotlib seaborn

Sau đó, import các thư viện thường dùng:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets

Khám phá các bộ dữ liệu mẫu của Scikit-learn

Scikit-learn cung cấp nhiều bộ dữ liệu mẫu để luyện tập, giúp bạn không cần tìm kiếm dữ liệu từ bên ngoài. Một ví dụ phổ biến là bộ dữ liệu hoa Iris.

# Load bộ dữ liệu Iris
iris = datasets.load_iris()
print("Tên các nhãn:", iris.target_names)
print("Tên các đặc trưng:", iris.feature_names)
print("Kích thước dữ liệu:", iris.data.shape)

Bạn có thể chuyển bộ dữ liệu này thành DataFrame để dễ thao tác hơn với Pandas.

df_iris = pd.DataFrame(iris.data, columns=iris.feature_names)
df_iris['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)
df_iris.head()

Tiền xử lý dữ liệu với Scikit-learn

Trước khi huấn luyện mô hình, bạn thường cần chuẩn hóa dữ liệu để các đặc trưng có cùng thang đo. Scikit-learn cung cấp các công cụ tiện lợi cho bước này.

from sklearn.preprocessing import StandardScaler

# Chuẩn hóa dữ liệu
scaler = StandardScaler()
scaled_features = scaler.fit_transform(df_iris.iloc[:, :-1])
scaled_df = pd.DataFrame(scaled_features, columns=iris.feature_names)
scaled_df.head()

Xây dựng mô hình phân loại đơn giản

Hãy thử xây dựng một mô hình phân loại để dự đoán loài hoa Iris bằng thuật toán KNN.

from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, classification_report

# Tách dữ liệu train/test
X_train, X_test, y_train, y_test = train_test_split(scaled_features, iris.target, test_size=0.2, random_state=42)

# Khởi tạo và huấn luyện mô hình
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Dự đoán và đánh giá
y_pred = knn.predict(X_test)
print("Độ chính xác:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred, target_names=iris.target_names))

Trực quan hóa kết quả phân loại

Bạn có thể trực quan hóa kết quả phân loại trên 2 đặc trưng để hiểu rõ hơn về khả năng phân tách của mô hình.

plt.figure(figsize=(8,6))
sns.scatterplot(x=scaled_df['sepal length (cm)'], y=scaled_df['sepal width (cm)'], hue=df_iris['species'])
plt.title("Phân bố dữ liệu Iris")
plt.show()

Áp dụng hồi quy tuyến tính với Scikit-learn

Ngoài phân loại, Scikit-learn còn hỗ trợ hồi quy. Hãy thử một ví dụ với bộ dữ liệu Boston Housing để dự đoán giá nhà.

from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston

# Load dữ liệu Boston
boston = load_boston()
X_boston = boston.data
y_boston = boston.target

# Tách train/test
X_train, X_test, y_train, y_test = train_test_split(X_boston, y_boston, test_size=0.2, random_state=42)

# Huấn luyện mô hình
lr = LinearRegression()
lr.fit(X_train, y_train)

# Dự đoán và đánh giá
y_pred = lr.predict(X_test)
print("Hệ số R^2:", lr.score(X_test, y_test))

Tích hợp pipeline và GridSearchCV để tối ưu mô hình

Scikit-learn hỗ trợ Pipeline để kết hợp nhiều bước tiền xử lý và huấn luyện thành một quy trình. Bạn cũng có thể dùng GridSearchCV để tìm tham số tối ưu.

from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCV

# Tạo pipeline
pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('knn', KNeighborsClassifier())
])

# Định nghĩa tham số cần tìm
param_grid = {'knn__n_neighbors': range(1, 10)}
grid = GridSearchCV(pipeline, param_grid, cv=5)
grid.fit(X_train, y_train)

print("Tham số tốt nhất:", grid.best_params_)
print("Độ chính xác tốt nhất:", grid.best_score_)

Kết luận

Bạn vừa tìm hiểu tổng quan về Scikit-learn, từ cách cài đặt, khám phá dữ liệu mẫu, tiền xử lý dữ liệu, xây dựng mô hình phân loại và hồi quy, đến tối ưu hóa mô hình với Pipeline và GridSearchCV. Đây là những bước nền tảng để bạn có thể xây dựng các hệ thống học máy phức tạp hơn.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!