import numpy as np from sklearn.datasets import make_regression from sklearn.linear_model import LinearRegression from sklearn.ensemble import RandomForestRegressor from sklearn.feature_selection import f_regression from sklearn.preprocessing import MinMaxScaler # Создание случайных данных X, y = make_regression(n_samples=100, n_features=10, random_state=42) # Масштабирование признаков scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X) # Ранжирование признаков с помощью Linear Regression linreg = LinearRegression() linreg.fit(X_scaled, y) linreg_scores = np.abs(linreg.coef_) # Ранжирование признаков с помощью Random Forest Regression rfreg = RandomForestRegressor() rfreg.fit(X_scaled, y) rfreg_scores = rfreg.feature_importances_ # Ранжирование признаков с помощью f_regression freg_scores, _ = f_regression(X_scaled, y) # Вычисление средней оценки avg_scores = np.mean([linreg_scores, rfreg_scores, freg_scores], axis=0) # Масштабирование score в интервал от 0 до 1 scaled_scores = avg_scores / np.max(avg_scores) # Вывод результатов for i, score in enumerate(scaled_scores): print(f"Признак {i}: {score}") # Получение индексов четырех наиболее важных признаков top_features_indices = np.argsort(scaled_scores)[-4:] print("4 Наиболее значимых признака:") for idx in top_features_indices: print(f"Признак {idx}: {scaled_scores[idx]}")