Как я могу контролировать количество выбранных функций с помощью LASSO?

avatar
이재환
9 августа 2021 в 01:31
50
0
0

Я разрабатываю регрессионную модель, использующую LASSO.

В частности, если есть 10~50 кандидатов, я хочу выбрать 1~5 функций.

if selection_type == 'LASSO':
    for i in range(1, 1000, 5):
        clf = Lasso(alpha=i).fit(X, y)
        importance = np.abs(clf.coef_)
        if len(np.nonzero(importance)[0]) == target_num :
            idx_features = (-importance).argsort()[:10]
            name_features = np.array(feature_names)[idx_features]
            intercept = clf.intercept_

Выше приведен код, который я сделал.

Я задаю "целевой номер" (1~5) в качестве аргумента, затем он повторяется до тех пор, пока номер выбранной функции не совпадет с целевым номером.

Проблема в том, что иногда это не дает результатов.

Как я могу получить определенное количество функций, используя LASSO в качестве выбора функций?

Источник

Ответы (0)