40 lines
2.1 KiB
Python
40 lines
2.1 KiB
Python
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
|