×

Sử dụng Scikit-learn để phân tích dữ liệu và học máy trong Python

Scikit-learn là một thư viện mạnh mẽ và phổ biến trong cộng đồng Python dành cho việc phân tích dữ liệu và học máy. Với một loạt các công cụ và chức năng, Scikit-learn giúp các nhà khoa học dữ liệu và lập trình viên thực hiện các bài toán phân loại, hồi quy, cụm, giảm chiều và tiền xử lý một cách hiệu quả.

Cài đặt và bắt đầu

Đầu tiên, chúng ta cần cài đặt thư viện Scikit-learn. Bạn có thể dễ dàng cài đặt nó thông qua pip:

pip install scikit-learn

Sau khi cài đặt, chúng ta có thể import và bắt đầu sử dụng:

import sklearn

Tải và Chuẩn bị Dữ liệu

Để thực hiện bất kỳ phân tích dữ liệu nào, dữ liệu của bạn cần được chuẩn bị sẵn sàng. Scikit-learn cung cấp một số bộ dữ liệu mẫu, chẳng hạn như Iris, Boston Housing và Digits. Bạn có thể sử dụng module datasets để tải dữ liệu này:

from sklearn import datasets

# Tải bộ dữ liệu Iris
iris = datasets.load_iris()
X, y = iris.data, iris.target  # X là đặc trưng, y là nhãn

Phân chia dữ liệu

Khi đã có dữ liệu, bước tiếp theo là chia dữ liệu thành tập huấn luyện và tập kiểm tra. Module model_selection cung cấp hàm train_test_split để thực hiện việc này:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Tiền xử lý dữ liệu

Tiền xử lý dữ liệu là một bước quan trọng trong học máy. Scikit-learn cung cấp nhiều công cụ để thực hiện các bước này như chuẩn hóa, chuẩn trực hoá và xử lý dữ liệu thiếu.

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

Xây dựng mô hình

Bước tiếp theo là chọn và huấn luyện mô hình. Scikit-learn cung cấp nhiều thuật toán học máy như Hồi quy Logistic, Cây quyết định, Random Forest, v.v.

Dưới đây là ví dụ về cách huấn luyện mô hình SVM:

from sklearn.svm import SVC

model = SVC()
model.fit(X_train, y_train)

Đánh giá mô hình

Sau khi huấn luyện, chúng ta cần đánh giá hiệu suất của mô hình sử dụng tập kiểm tra. Có nhiều phương pháp đánh giá như Accuracy, Precision, Recall, và F1-Score.

from sklearn.metrics import accuracy_score, classification_report

y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')
print(classification_report(y_test, y_pred))

Lưu và tải mô hình

Bạn có thể lưu mô hình đã huấn luyện và tải lại sau này sử dụng joblib:

from sklearn.externals import joblib

# Lưu mô hình
joblib.dump(model, 'svm_model.pkl')

# Tải mô hình
loaded_model = joblib.load('svm_model.pkl')

Các Thuật toán Phổ Biến

  • Hồi quy Logistic: Dùng cho bài toán phân loại nhị phân.
  • Cây quyết định: Dùng cho cả phân loại và hồi quy, dễ dàng giải thích.
  • Random Forest: Tăng cường tính chính xác thông qua kết hợp nhiều cây quyết định.
  • K-NN: Dùng cho bài toán phân loại và hồi quy dựa trên khoảng cách tới các điểm gần nhất.
  • Hồi quy tuyến tính: Dùng cho bài toán hồi quy để dự đoán giá trị liên tục.

Đánh giá Kết quả

Đánh giá mô hình bằng cách sử dụng thước đo phù hợp là rất quan trọng để hiểu được hiệu suất của mô hình. Ngoài ra, sử dụng phương pháp như Cross-validation cũng cung cấp cái nhìn toàn diện hơn.

Kết luận

Việc sử dụng Scikit-learn giúp đơn giản hóa quá trình phân tích dữ liệu và học máy. Với khả năng mở rộng và tài liệu phong phú, thư viện này là lựa chọn tối ưu cho những ai muốn bước chân vào lĩnh vực học máy và phân tích dữ liệu. Việc nắm vững các công cụ và kỹ thuật trong Scikit-learn sẽ giúp bạn giải quyết một loạt các bài toán trong thế giới thực.

Comments