机器学习之特征选择

213 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

在机器学习中有多种方式可以供我们选择并进行特征选择,下面简单尝试一下使用RFE进行特征选择和使用决策树进行特征选择,并尝试将预测模型pmml文件进行导出。 ​

使用RFE进行特征选择

"""
使用RFE进行特征选择:RFE是常见的特征选择方法,也叫递归特征消除。它的工作原理是递归删除特征,
并在剩余的特征上构建模型。它使用模型准确率来判断哪些特征(或特征组合)对预测结果贡献较大。
"""

#导入机器学习所需要的模块
#导入数据集包
from sklearn import datasets
#导入RFE所需要的包
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

#加载数据集
testdataset = datasets.load_iris()
model = LogisticRegression()
#使用RFE
rfe = RFE(model, 3)
rfe = rfe.fit(testdataset.data, testdataset.target)
print(rfe.support_)
print(rfe.ranking_)

使用决策树进行特征选择

"""
使用决策树进行特征选择:
决策树也是常用的特征选取方法。使用决策树集合(如随机森林等)也可以计算每个特征的相对重要性。
这些重要性能够辅助进行特征选择。该方法主要使用信息增益率来进行特征选择。
"""
#导入数据集包
from sklearn import datasets
from sklearn import metrics
from sklearn.ensemble import ExtraTreesClassifier

#加载数据集
dataset = datasets.load_iris()
model = ExtraTreesClassifier()
model.fit(dataset.data, dataset.target)
#打印出每个特征的重要性
print(model.feature_importances_)

机器学习预测模型导出pmml文件

#导入数据集包
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn2pmml import PMMLPipeline, sklearn2pmml
import pandas as pd
from pandas import DataFrame

#加载数据集
iris = load_iris()
#创建带有特征名称的
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
#创建模型管道
iris_pipeline = PMMLPipeline([("classifier", RandomForestClassifier())])
#训练模型
iris_pipeline.fit(iris_df, iris.target)
#导出模型
sklearn2pmml(iris_pipeline, "test_Iris.pmml")