使用 Python 编写一个机器学习模型例如决策树或随机森林用于进行特征选择?
import pandas as pd
import numpy as np
from sklearn.ensemble import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
# Load the dataset
data = pd.read_csv('features_selection_data.csv')
# Select features
features = data.iloc[:, 1:]
# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(features, data['target'], test_size=0.2, random_state=42)
# Create decision tree and random forest models
model_tree = DecisionTreeClassifier()
model_rf = RandomForestClassifier()
# Train the models
model_tree.fit(X_train, y_train)
model_rf.fit(X_train, y_train)
# Evaluate the models on the test set
score_tree = model_tree.score(X_test, y_test)
score_rf = model_rf.score(X_test, y_test)
# Print the scores
print('Decision Tree Score:', score_tree)
print('Random Forest Score:', score_rf)
数据准备
假设您有一个名为 features_selection_data.csv
的 CSV 文件,其中包含一个特征和一个目标变量的数值数据。
代码解释
- 导入库:我们导入必要的库,包括 pandas 和 numpy。
-
加载数据:我们使用 pandas 读取
features_selection_data.csv
数据。 - 特征选择:我们从数据中选择第二列(目标变量)的特征。
-
数据分割:我们使用
train_test_split
函数将数据分割为训练 (80%) 和测试 (20%) 集成。 - 创建模型:我们创建两种决策树和随机森林模型。
- 训练模型:我们训练模型使用训练数据。
- 评估模型:我们使用测试数据评估模型的性能,并打印平均精度。
- 打印结果:我们打印决策树和随机森林模型的平均精度。
注意
-
train_test_split
中的test_size
参数控制测试集的大小。 -
model_tree
和model_rf
是训练模型的实例。 -
score_tree
和score_rf
是模型在测试集上的平均精度。