Что ж, выполнение PCA и вычисление Z-баллов может привести вас к этому, но есть НАМНОГО лучший способ решения этой проблемы. Пожалуйста, рассмотрите возможность использования Feature Engineering, чтобы идентифицировать функции, которые наиболее тесно связаны с набором данных (зависимой переменной), и удаление не относящихся к делу или менее важных функций, которые не вносят большой вклад в нашу целевую переменную (для достижения лучшей общей точности для наша модель).
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv("https://rodeo-tutorials.s3.amazonaws.com/data/credit-data-trainingset.csv")
df.head()
from sklearn.ensemble import RandomForestClassifier
features = np.array(['revolving_utilization_of_unsecured_lines',
'age', 'number_of_time30-59_days_past_due_not_worse',
'debt_ratio', 'monthly_income','number_of_open_credit_lines_and_loans',
'number_of_times90_days_late', 'number_real_estate_loans_or_lines',
'number_of_time60-89_days_past_due_not_worse', 'number_of_dependents'])
clf = RandomForestClassifier()
clf.fit(df[features], df['serious_dlqin2yrs'])
# from the calculated importances, order them from most to least important
# and make a barplot so we can visualize what is/isn't important
importances = clf.feature_importances_
sorted_idx = np.argsort(importances)
padding = np.arange(len(features)) + 0.5
plt.barh(padding, importances[sorted_idx], align='center')
plt.yticks(padding, features[sorted_idx])
plt.xlabel("Relative Importance")
plt.title("Variable Importance")
plt.show()
Просто внесите все (довольно очевидные) изменения, которые нужно внести, чтобы настроить этот код в соответствии с вашим конкретным c набором данных.
Вот несколько ссылок что далее объясняет, как работает Feature Feature.
https://github.com/WillKoehrsen/feature-selector/blob/master/Feature%20Selector%20Usage.ipynb
https://towardsdatascience.com/feature-selection-techniques-in-machine-learning-with-python-f24e7da3f36e
Для справки здесь хорошая ссылка для лучшего понимания PCA.
https://scikit-learn.org/stable/auto_examples/decomposition/plot_pca_iris.html
Кроме того, вот отличная ссылка для лучшего понимания Z-показателей.
Pandas - вычислить z-показатель для всех столбцов