我正在使用來自 sklearn 的糖尿病資料集。
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
diabetes = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(diabetes['data'], diabetes['target'], random_state=263)
from sklearn.linear_model import Lasso
lasso = Lasso().fit(X_train, y_train)
import numpy as np
np.sum(lasso.coef_ != 0)
我拆分資料集,然后使用訓練資料集訓練我的套索模型。我的最后一個列印陳述句回傳模型使用了多少特征。如何在 sklearn/Python 中定義這些功能的名稱?
uj5u.com熱心網友回復:
您可以使用 獲取糖尿病資料集的特征名稱diabetes['feature_names']。之后,您可以提取所選特征的名稱(即估計系數不為零的特征),如下所示:
import numpy as np
from sklearn.datasets import load_diabetes
from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
diabetes = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(diabetes['data'], diabetes['target'], random_state=263)
lasso = Lasso().fit(X_train, y_train)
names = diabetes['feature_names']
print(names)
# ['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6']
print(np.sum(lasso.coef_ != 0))
# 2
print([names[i] for i in range(len(names)) if lasso.coef_[i] != 0])
# ['bmi', 's5']
uj5u.com熱心網友回復:
您可以使用:
lasso.feature_names_in_
參考: feature_names_in_
這是一個失敗的新屬性,因此請檢查您的 sklearn 庫是否已更新。你可以這樣做:
import sklearn
sklearn.__version__
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353634.html
