深圳专业网站建设免费送域名空间,福建建设银行官方网站,淮安做网站.哪家网络公司好,自己做的网站放在服务器哪里这是Python机器学习原创文章#xff0c;我的第183篇原创文章。
一、引言 对于表格数据#xff0c;一套完整的机器学习建模流程如下#xff1a; 背景知识1#xff1a;机器学习中的学习器
【Python机器学习系列】一文搞懂机器学习中的转换器和估计器#xff08;附案例我的第183篇原创文章。
一、引言 对于表格数据一套完整的机器学习建模流程如下 背景知识1机器学习中的学习器
【Python机器学习系列】一文搞懂机器学习中的转换器和估计器附案例
背景知识2机器学习中的管道机制
简介 转换器用于数据的预处理和特征工程它们无状态且只学习转换规则。而估计器用于模型的训练和预测它们有状态且学习训练数据中的模式和规律。转换器和估计器在机器学习中扮演不同的角色但它们通常可以结合在一起构建一个完整的机器学习流程。 机器学习的管道Pipeline机制通过将多个转换器和估计器按顺序连接在一起可以构建一个完整的数据处理和模型训练流程。在管道机制中可以使用Pipeline类来组织和连接不同的转换器和估计器。Pipeline类提供了一种简单的方式来定义和管理机器学习任务的流程。
好处 1.管道机制是按照封装顺序依次执行的一种机制在机器学习算法中得以应用的根源在于参数集在新数据集比如测试集上的重复使用。 2.可以结合grid search对参数进行选择。 二、实现过程
导入第三方库
import pandas as pd
from sklearn.pipeline import Pipeline #管道机制
from sklearn.pipeline import make_pipeline
from sklearn.model_selection import train_test_split #分训练和测试集
#导入“流水线”各个模块标准化降维分类
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
准备数据
data pd.read_csv(rDataset.csv)
df pd.DataFrame(data)
target target
features df.columns.drop(target)
X_train, X_test, y_train, y_test train_test_split(df[features], df[target], test_size0.2, random_state0)2.1 建立管道进行分类预测 steps为Pipeline类最关键的参数sklearn规定它是一个[( ),( )]类型列表里面是一个个元组分别为名字和工序从左到右是流水线上的先后顺序。Pipleline中最后一个之外的所有estimators都必须是变换器transformers最后一个estimator可以是任意类型transformerclassifierregresser,如果最后一个estimator是个分类器则整个pipeline就可以作为分类器使用如果最后一个estimator是个聚类器则整个pipeline就可以作为聚类器使用。如果你不想为每一个步骤提供用户指定的名称这种情况下就可以用make_pipeline函数创建管道它可以为我们创建管道并根据每个步骤所属的类为其自动命名。
# pipePipeline(steps[(standardScaler,StandardScaler()), (pca, PCA()), (svc,SVC())])
pipemake_pipeline(StandardScaler(),PCA(),SVC())
pipe.predict(X_test) #预测结果
print(Test accuracy: %.3f % pipe.score(X_test, y_test))#输出精度
输出 2.2 管道流水线网格搜索参数 在机器学习中超参数是模型的配置参数需要在训练之前设置并且不能通过模型的学习过程来自动调整。超参数的选择对于模型的性能和泛化能力非常重要因此需要通过实验来确定最佳的超参数组合。GridSearchCV是scikit-learn库中的一个类用于进行网格搜索Grid Search和交叉验证Cross-Validation来选择模型的最佳超参数。使用GridSearchCV时需要提供一个估计器Estimator对象、超参数的候选值列表和评估指标如准确率、均方误差等。GridSearchCV将对所有超参数组合进行交叉验证并返回具有最佳性能的超参数组合及其对应的模型。
pipelinePipeline([(scaler,StandardScaler()),(pca,PCA()),(svm,SVC())])
param_grid{svm__C:[0.001,0.01,0.1,1,10,100],svm__gamma:[0.001,0.01,0.1,1,10,100]}# 定义网格搜索参数用estimator__parameter形式设置参数
gridGridSearchCV(pipeline,param_grid,cv5, scoringaccuracy)# 网格搜索模型实例化
grid.fit(X_train,y_train)
grid.predict(X_test)
print(Test accuracy: %.3f % grid.score(X_test, y_test))#输出精度
输出 本文简单介绍了机器学习管道流水线机制的使用方法事实上特征处理过程也可以加入管道我们还可以自定义转化器加入管道中可以对不同的特征处理划分不同的管道这些用法我后期出文章再细说。
本期内容就到这里我们下期再见需要数据集和源码的小伙伴关注底部公众号添加作者微信 作者简介 读研期间发表6篇SCI数据挖掘相关论文现在某研究院从事数据算法相关科研工作结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创以最简单的方式理解和学习关注我一起交流成长。