Ось приклад того, чому ви хотіли б це зробити (і приблизно як).
У мене є 3 прогнозних моделі цін на житло: лінійний, градієнтний прискорення, нейронна мережа.
Я хочу поєднати їх із середньозваженим рівнем та знайти найкращі ваги.
Я запускаю лінійну регресію і отримую рішення з вагами на зразок -3,1, 2,5, 1,5 та деяким перехопленням.
Тож те, що я роблю замість цього, використовую sklearn
blendlasso = LassoCV(alphas=np.logspace(-6, -3, 7),
max_iter=100000,
cv=5,
fit_intercept=False,
positive=True)
І я отримую позитивні ваги, сума яких (дуже близька) до 1. У моєму прикладі я хочу, щоб альфа працювала найкраще поза вибіркою, тому я використовую LassoCV з перехресною валідацією.
Документи sklearn стверджують, що не слід встановлювати альфа-значення 0 на числових причинах, однак ви також можете використовувати прямий Lasso () та встановити параметр альфа як мінімум, щоб отримати можливість отримати розумну відповідь.