Bài viết này sẽ hướng dẫn bạn cách sử dụng Polars DataFrames kết hợp với Scikit-learn để xây dựng các mô hình Machine Learning một cách hiệu quả. Chúng ta sẽ khám phá những lợi ích của việc sử dụng Polars cho việc tiền xử lý dữ liệu và cách tích hợp nó với quy trình làm việc của Scikit-learn. Nếu bạn đang tìm kiếm cách tăng tốc quá trình xử lý dữ liệu và xây dựng mô hình, đây là bài viết dành cho bạn.
Polars là một thư viện xử lý dữ liệu cực nhanh, được xây dựng bằng Rust, nổi bật với hiệu suất và khả năng xử lý các tập dữ liệu lớn. Trong khi đó, Scikit-learn là một thư viện Machine Learning toàn diện với nhiều thuật toán và công cụ hữu ích. Kết hợp cả hai, bạn có thể tận dụng tối đa sức mạnh của cả hai thế giới: tốc độ xử lý dữ liệu của Polars và khả năng mô hình hóa của Scikit-learn.
Việc chuyển đổi dữ liệu từ Polars DataFrames sang các định dạng mà Scikit-learn có thể sử dụng, chẳng hạn như NumPy arrays, là một bước quan trọng trong quy trình này. Điều này cho phép bạn tận dụng các tính năng tiền xử lý dữ liệu mạnh mẽ của Polars trước khi đưa dữ liệu vào các mô hình Machine Learning của Scikit-learn.
Phương pháp đơn giản nhất là chuyển đổi Polars DataFrame thành NumPy array bằng phương thức `to_numpy()`. Điều này cho phép bạn sử dụng dữ liệu trong hầu hết các thuật toán của Scikit-learn.
Ví dụ:
import polars as pl
from sklearn.linear_model import LinearRegression
import numpy as np
# Tạo một Polars DataFrame
data = pl.DataFrame(np.random.rand(100, 5))
# Chọn features và target
X = data.select(pl.all().exclude("column_0"))
y = data.select(pl.col("column_0").alias("y"))
# Chia dữ liệu thành tập huấn luyện và tập kiểm tra
X_train = X[:80]
y_train = y[:80]
X_test = X[80:]
y_test = y[80:]
# Khởi tạo và huấn luyện mô hình Linear Regression
model = LinearRegression()
model.fit(X=X_train.to_numpy(), y=y_train.to_numpy())
# Dự đoán trên tập kiểm tra
predictions = model.predict(X_test.to_numpy())
Trong ví dụ trên, chúng ta chuyển đổi Polars DataFrames `X_train`, `y_train`, `X_test` và `y_test` thành NumPy arrays trước khi đưa chúng vào mô hình Linear Regression của Scikit-learn.
Từ phiên bản 1.4, Scikit-learn đã cải thiện khả năng tương thích với Polars. Phương thức `set_output()` cho phép bạn cấu hình các transformer để trả về Polars DataFrames.
Ví dụ:
import polars as pl
from sklearn.preprocessing import StandardScaler
from sklearn.compose import ColumnTransformer
# Tạo một Polars DataFrame
df = pl.DataFrame({"num": [1, 2, 3], "cat": ["a", "b", "c"]})
# Tạo ColumnTransformer
transformer = ColumnTransformer(
transformers=[
("num", StandardScaler(), ["num"]),
("cat", OrdinalEncoder(), ["cat"]),
]
)
# Kích hoạt đầu ra Polars
transformer.set_output(transform="polars")
# Fit và transform DataFrame
transformed_df = transformer.fit_transform(df)
print(transformed_df)
Với `set_output(transform="polars")`, kết quả trả về từ `fit_transform()` sẽ là một Polars DataFrame, giúp bạn duy trì định dạng dữ liệu xuyên suốt quy trình.
Đối với dữ liệu categorical, bạn có thể sử dụng các phương pháp encoding của Scikit-learn. Tuy nhiên, cần chuyển đổi các cột categorical trong Polars DataFrame sang dạng phù hợp trước khi áp dụng các phương pháp encoding.
Việc tích hợp Polars DataFrames và Scikit-learn mang lại nhiều lợi ích về hiệu suất và khả năng xử lý dữ liệu lớn. Bằng cách làm theo các phương pháp được trình bày trong bài viết này, bạn có thể tối ưu hóa quy trình Machine Learning của mình và đạt được kết quả tốt hơn.
Bài viết liên quan