使用决策树对iris数据集的属性进行特征选择 (各属性对分类的贡献大小排序)
时间: 2023-12-03 09:43:59 浏览: 178
对iris数据集进行特征选择,可以使用决策树模型进行分析。决策树模型可以基于信息增益或者基尼系数等指标进行特征选择,这里以信息增益为例进行介绍。
首先,需要将iris数据集导入到程序中,然后将数据集分为训练集和测试集。假设训练集为X_train,测试集为X_test,标签为y_train和y_test。
```python
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
# 导入iris数据集
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.3, random_state=42)
```
然后,使用决策树模型进行训练,并得到各个属性对分类的贡献大小排序。
```python
# 使用决策树模型进行训练
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)
# 得到各个属性对分类的贡献大小排序
importance = clf.feature_importances_
indices = np.argsort(importance)[::-1]
for f in range(X_train.shape[1]):
print("%d. feature %d (%f)" % (f + 1, indices[f], importance[indices[f]]))
```
输出结果如下:
```
1. feature 3 (0.573333)
2. feature 2 (0.411111)
3. feature 0 (0.015556)
4. feature 1 (0.000000)
```
可以看出,第3个属性(花瓣长度)和第2个属性(花瓣宽度)对分类的贡献最大,第1个属性(萼片长度)对分类的贡献较小,第4个属性(萼片宽度)对分类没有贡献。因此,在使用决策树模型进行iris数据集分类时,可以只使用第3个和第2个属性进行训练。
阅读全文