Вот пример того, почему вы хотите это сделать (и примерно как).
У меня есть 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 () и установить альфа-параметр настолько низким, насколько это возможно для получения разумного ответа.