sklearn.preprocessing.PolynomialFeatures是scikit-learn库中的一个模块,用于生成多项式特征矩阵。在生成多项式特征矩阵时,有时候我们希望删除仅限交互的列,即只包含两个或更多特征之间的交互项的列。
要从sklearn.preprocessing.PolynomialFeatures中删除仅限交互的列,可以按照以下步骤进行操作:
from sklearn.preprocessing import PolynomialFeatures
import numpy as np
X = np.array([[1, 2], [3, 4], [5, 6]])
poly = PolynomialFeatures(include_bias=False)
X_poly = poly.fit_transform(X)
column_indices = poly.get_feature_names_out()
interaction_only_columns = np.array([True if '^' in column else False for column in column_indices])
X_poly_filtered = X_poly[:, ~interaction_only_columns]
最终,X_poly_filtered将是一个删除了仅限交互的列的多项式特征矩阵。
需要注意的是,sklearn.preprocessing.PolynomialFeatures中的交互项列的命名方式为"特征1^次数1 * 特征2^次数2",例如"X0^2"表示特征X0的平方。因此,通过检查列名中是否包含"^"符号,可以判断该列是否为仅限交互的列。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云