利用SelectFwe()进行特征选择的Python代码示例
发布时间:2023-12-18 17:07:45
特征选择是机器学习中一个非常重要的步骤,它的目的是从原始特征中选择出对目标变量预测有最强预测能力的子集。在Python中,可以使用scikit-learn库的SelectFwe()函数进行特征选择。
SelectFwe()函数是基于单变量统计检验的特征选择方法,它通过计算每个特征与目标变量之间的统计显著性来选择特征。在选择特征时,可以设置参数alpha来控制显著水平。
下面是一个使用SelectFwe()函数进行特征选择的示例代码:
from sklearn.feature_selection import SelectFwe from sklearn.datasets import load_iris # 加载数据集 data = load_iris() X = data.data y = data.target # 创建特征选择对象 selector = SelectFwe(alpha=0.05) # 设置显著水平为0.05 # 特征选择 X_selected = selector.fit_transform(X, y)
在上面的示例中,首先导入了必要的库和数据集。然后,创建了一个SelectFwe()对象,通过设置alpha参数为0.05来指定显著水平。最后,调用fit_transform()函数对原始特征进行特征选择,返回选择后的特征子集X_selected。
以下是一个完整的使用SelectFwe()函数进行特征选择的示例,目标是预测鸢尾花数据集中的目标变量种类:
from sklearn.feature_selection import SelectFwe
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# 加载数据集
data = load_iris()
X = data.data
y = data.target
# 创建特征选择对象
selector = SelectFwe(alpha=0.05) # 设置显著水平为0.05
# 特征选择
X_selected = selector.fit_transform(X, y)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_selected, y, test_size=0.2, random_state=42)
# 训练模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 评估模型性能
accuracy = accuracy_score(y_test, y_pred)
print("模型准确率:", accuracy)
在上面的示例中,首先导入了必要的库和数据集。然后,创建了一个SelectFwe()对象,通过设置alpha参数为0.05来指定显著水平。接下来,调用fit_transform()函数对原始特征进行特征选择,返回选择后的特征子集X_selected。
然后,使用train_test_split()函数将数据集划分为训练集和测试集。接着,创建LogisticRegression()对象并训练模型。最后,使用predict()函数对测试集进行预测,并使用accuracy_score()函数计算模型的准确率。
通过以上示例代码,可以看到如何使用SelectFwe()进行特征选择,并将选择后的特征子集应用于模型训练和预测。根据实际需求,可以调整alpha参数的值来控制特征选择的严格程度。
