特征选择是机器学习中的一个重要步骤,可以通过单调性、相关性和鲁棒性等特征的固有属性来评价和选择特征。以下是一个简单的示例代码,使用Python和scikit-learn库进行特征选择:
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import SelectFromModel
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 使用随机森林进行特征选择
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
# 输出特征重要性
feature_importances = clf.feature_importances_
print("Feature Importances:", feature_importances)
# 选择重要性大于阈值的特征
sfm = SelectFromModel(clf, threshold=0.2) # 可根据具体情况调整阈值
sfm.fit(X_train, y_train)
# 获取选择的特征
selected_features = X_train.columns[sfm.get_support()]
# 输出选择的特征
print("Selected Features:", selected_features)
# 使用选择的特征进行训练和测试
X_train_selected = sfm.transform(X_train)
X_test_selected = sfm.transform(X_test)
# 在这里,可以使用X_train_selected和X_test_selected进行后续的模型训练和测试
请注意,上述代码中使用了随机森林模型进行特征选择,你可以根据具体问题选择其他模型或方法。同时,阈值的选择也是一个需要根据实际情况调整的参数。