Kỹ thuật đặc trưng

Phát triển mô hình Machine Learning cho môi trường sản xuất

Sinan Ozdemir

Data Scientist and Author

Giới thiệu về kỹ thuật đặc trưng

  • Biến đổi dữ liệu huấn luyện để tối đa hóa hiệu năng pipeline ML
  • Giảm độ phức tạp tính toán
  • Ví dụ
    • Tổng hợp dữ liệu từ nhiều nguồn
    • Xây dựng đặc trưng mới
    • Áp dụng biến đổi đặc trưng

pipeline kỹ thuật đặc trưng

1 https://www.manning.com/books/feature-engineering-bookcamp
Phát triển mô hình Machine Learning cho môi trường sản xuất

Tổng hợp dữ liệu từ nhiều nguồn

  • Kết hợp dữ liệu từ các tập khác nhau
  • Dùng nhiều loại dữ liệu (ví dụ: số và phân loại)

Điều này giúp:

  • Cải thiện độ chính xác mô hình
  • Cho phép dùng mô hình phức tạp hơn

biểu đồ trên màn hình

Phát triển mô hình Machine Learning cho môi trường sản xuất

Ví dụ: tổng hợp dữ liệu

class DataAggregator:
    def __init__(self):
        pass

    def fit(self, X, y=None):
        return self  # nothing to fit

    def transform(self, X, y=None):
        # Load data from multiple sources
        data1 = pd.read_csv('data1.csv')
        data2 = pd.read_csv('data2.csv')
        data3 = pd.read_csv('data3.csv')

        # Combine data from all sources (including X) into a single data frame
        aggregated_data = pd.concat([X, data1, data2, data3], axis=0)

        return aggregated_data  # Return aggregated data
Phát triển mô hình Machine Learning cho môi trường sản xuất

Xây dựng đặc trưng

  • Tạo đặc trưng mới từ đặc trưng hiện có
  • Sinh đặc trưng từ dữ liệu sẵn có
  • Cải thiện hiệu năng mô hình
  • Tăng khả năng diễn giải
Phát triển mô hình Machine Learning cho môi trường sản xuất

Ví dụ: xây dựng đặc trưng

class FeatureConstructor:
    def __init__(self):
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X, y=None):
        # Calculate the mean of each column in the data
        mean_values = X.mean()

        # Create new features based on the mean values
        X['mean_col1'] = X['col1'] - mean_values['col1']
        X['mean_col2'] = X['col2'] - mean_values['col2']

        return X  # Return the augmented data set
Phát triển mô hình Machine Learning cho môi trường sản xuất

Biến đổi đặc trưng

Biến đổi đặc trưng ngay trên dữ liệu

  • Chuẩn hóa phân phối dữ liệu
  • Loại bỏ ngoại lệ
  • Cải thiện độ chính xác và hiệu năng mô hình
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score

data = load_breast_cancer()  # Load dataset
X, y = data.data, data.target
model = LogisticRegression(random_state=42)  # instantiate a model

# Split data into train and test sets
X_train, X_test, y_train, y_test = train_test_split(
  X, y, test_size=0.3, random_state=42)

model.fit(X_train, y_train)  # Fit logistic regression model without scaling
y_pred_no_scaling = model.predict(X_test)
acc_no_scaling = accuracy_score(y_test, y_pred_no_scaling)

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

model.fit(X_train_scaled, y_train)  # Fit logistic regression model with scaling
y_pred_with_scaling = model.predict(X_test_scaled)
acc_with_scaling = accuracy_score(y_test, y_pred_with_scaling)

# Compare accuracies of models with and without scaling
print(f"Accuracy without scaling: {acc_no_scaling}")  # 0.971
print(f"Accuracy with scaling: {acc_with_scaling}")  # 0.982
Phát triển mô hình Machine Learning cho môi trường sản xuất

Chọn đặc trưng

Chọn một tập con đặc trưng bằng cách loại bỏ đặc trưng thừa và không liên quan

  • Giảm overfitting
  • Tăng độ chính xác và hiệu năng
  • Cải thiện khả năng diễn giải mô hình

chọn đặc trưng

1 https://www.manning.com/books/feature-engineering-bookcamp
Phát triển mô hình Machine Learning cho môi trường sản xuất

Ví dụ kỹ thuật đặc trưng (tiếp)

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, chi2
from sklearn.pipeline import Pipeline

pipeline = Pipeline([  # Define feature engineering pipeline

    ('aggregate', DataAggregator()),  # Aggregate data from multiple sources

    ('construction', FeatureConstructor()),  # Feature Construction

    ('scaler', StandardScaler()),  # Feature Transformation

    ('select', SelectKBest(chi2, k=10)),  # Feature Selection
])
X_transformed = pipeline.fit_transform(X)  # Fit and transform data using pipeline
Phát triển mô hình Machine Learning cho môi trường sản xuất

Tìm hiểu thêm về kỹ thuật đặc trưng

sách về FE

Phát triển mô hình Machine Learning cho môi trường sản xuất

Ayo berlatih!

Phát triển mô hình Machine Learning cho môi trường sản xuất

Preparing Video For Download...