import numpy as np from sklearn.linear_model import Ridge, LinearRegression from sklearn.ensemble import RandomForestRegressor from sklearn.feature_selection import RFE ''' Задание Используя код из [1](пункт «Решение задачи ранжирования признаков», стр. 205), выполните ранжирование признаков с помощью указанных по вариантумоделей. Отобразите получившиеся значения\оценки каждого признака каждым методом\моделью и среднюю оценку. Проведите анализ получившихся результатов. Какие четырепризнака оказались самыми важными по среднему значению? (Названия\индексы признаков и будут ответом на задание). Вариант 5. Гребневая регрессия (Ridge), Рекурсивное сокращение признаков (Recursive Feature Elimination – RFE), Сокращение признаков Случайными деревьями (Random Forest Regressor). ''' # создание данных rs = np.random.RandomState(2) X, y = make_regression(n_samples=750, n_features=15, noise=0.1, random_state=random_state) data = pd.DataFrame(X, columns=[f'Признак {i}' for i in range(X.shape[1])]) data['Целевая переменная'] = y X = data.drop('Целевая переменная', axis=1) y = data['Целевая переменная'] ridge = Ridge(alpha=1) # Создаём модель гребневой регрессии и обучаем её ridge.fit(X, Y) recFE = RFE(LinearRegression(), n_features_to_select=1) # recFE.fit(X, Y) rfr = RandomForestRegressor() # Создаём и обучаем регрессор случайного леса rfr.fit(X, Y) models = [('Гребневая регрессия', ridge), ('RFE', recFE), ('RFR', rfr)] for name, model in models: pass