Phương pháp hoán vị trong Python là gì?

Tầm quan trọng của tính năng hoán vị

Tầm quan trọng của tính năng hoán vị là một kỹ thuật kiểm tra mô hình có thể được sử dụng cho bất kỳ khi dữ liệu ở dạng bảng. Điều này đặc biệt hữu ích cho phi tuyến tính hoặc mờ đục. Tầm quan trọng của tính năng hoán vị được xác định là sự giảm điểm của mô hình khi một giá trị tính năng duy nhất được xáo trộn ngẫu nhiên. Quy trình này phá vỡ mối quan hệ giữa tính năng và mục tiêu, do đó, điểm mô hình giảm cho thấy mức độ phụ thuộc của mô hình vào tính năng. Kỹ thuật này được hưởng lợi từ tính bất khả tri của mô hình và có thể được tính toán nhiều lần với các hoán vị khác nhau của tính năng

Cảnh báo

Các tính năng được coi là có tầm quan trọng thấp đối với một mô hình xấu [điểm xác thực chéo thấp] có thể rất quan trọng đối với một mô hình tốt. Do đó, điều quan trọng là luôn đánh giá sức mạnh dự đoán của một mô hình bằng cách sử dụng một tập hợp được tổ chức [hoặc tốt hơn với xác thực chéo] trước khi tính toán tầm quan trọng. Tầm quan trọng của hoán vị không phản ánh giá trị dự đoán nội tại của một tính năng mà là tầm quan trọng của tính năng này đối với một mô hình cụ thể

Hàm tính toán tầm quan trọng của tính năng đối với một tập dữ liệu nhất định. Tham số n_repeats đặt số lần một tính năng được xáo trộn ngẫu nhiên và trả về một mẫu về mức độ quan trọng của tính năng

Hãy xem xét mô hình hồi quy được đào tạo sau đây

>>> from sklearn.datasets import load_diabetes
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import Ridge
>>> diabetes = load_diabetes[]
>>> X_train, X_val, y_train, y_val = train_test_split[
..     diabetes.data, diabetes.target, random_state=0]
...
>>> model = Ridge[alpha=1e-2].fit[X_train, y_train]
>>> model.score[X_val, y_val]
0.356...

Hiệu suất xác thực của nó, được đo thông qua điểm số \[R^2\] , lớn hơn đáng kể so với mức cơ hội. Điều này giúp có thể sử dụng chức năng để thăm dò tính năng nào có khả năng dự đoán cao nhất.

>>> from sklearn.inspection import permutation_importance
>>> r = permutation_importance[model, X_val, y_val,
..                            n_repeats=30,
..                            random_state=0]
...
>>> for i in r.importances_mean.argsort[][::-1]:
..     if r.importances_mean[i] - 2 * r.importances_std[i] > 0:
..         print[f"{diabetes.feature_names[i]:

Chủ Đề