




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年Python机器学习考试模拟试卷:Scikit-learn模型训练考试时间:______分钟总分:______分姓名:______注意:请确保在运行以下代码之前已经安装了`numpy`,`pandas`,`scikit-learn`库。```pythonimportnumpyasnpimportpandasaspdfromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_split,GridSearchCVfromsklearn.preprocessingimportStandardScaler,OneHotEncoderfromposeimportColumnTransformerfromsklearn.pipelineimportPipelinefromsklearn.linear_modelimportLogisticRegressionfromsklearn.ensembleimportRandomForestClassifierfromsklearn.metricsimportaccuracy_score,classification_report#1.加载Iris数据集iris=load_iris()X=iris.datay=iris.targetfeature_names=iris.feature_namestarget_names=iris.target_names#假设我们将前两个特征视为数值型,第三个特征('petallength(cm)')视为类别型(虽然它本身是数值,但这里按题目要求处理)#为了模拟,我们手动修改一个值使其成为缺失值X[0,2]=np.nan#2.将数据转换为DataFrame以便后续处理df=pd.DataFrame(X,columns=feature_names)df['species']=y#添加目标变量列df['petallength(cm)']=df['petallength(cm)'].astype('float')#确保是浮点型,以便处理缺失值#分离出数值型和类别型特征列numeric_features=['sepallength(cm)','sepalwidth(cm)','petallength(cm)']categorical_features=['petalwidth(cm)']#假设最后一个特征是需要编码的类别特征#3.划分数据集X_train,X_test,y_train,y_test=train_test_split(df[numeric_features+categorical_features],df['species'],test_size=0.3,random_state=42)#4.创建预处理步骤#对数值型特征进行标准化numeric_transformer=StandardScaler()#对类别型特征进行独热编码categorical_transformer=OneHotEncoder(handle_unknown='ignore')#使用ColumnTransformer组合不同的预处理步骤preprocessor=ColumnTransformer(transformers=[('num',numeric_transformer,numeric_features),('cat',categorical_transformer,categorical_features)])#5.创建一个包含预处理和模型的Pipeline#选择LogisticRegression作为基础模型pipeline=Pipeline(steps=[('preprocessor',preprocessor),('classifier',LogisticRegression(solver='liblinear',max_iter=200))])#6.使用训练数据训练Pipelinepipeline.fit(X_train,y_train)#7.使用训练好的Pipeline对测试集进行预测y_pred=pipeline.predict(X_test)#8.计算并输出模型在测试集上的准确率accuracy=accuracy_score(y_test,y_pred)print(f"ModelAccuracy:{accuracy:.4f}")#9.输出详细的分类报告(包含precision,recall,f1-score)print("\nClassificationReport:")print(classification_report(y_test,y_pred,target_names=target_names))#10.现在我们尝试使用GridSearchCV来寻找更好的参数#为LogisticRegression定义一个参数网格param_grid={'classifier__C':[0.01,0.1,1,10],'classifier__penalty':['l1','l2']#注意:liblinear只支持l1和l2}#创建GridSearchCV对象grid_search=GridSearchCV(pipeline,param_grid,cv=5,scoring='accuracy')#使用训练数据运行网格搜索grid_search.fit(X_train,y_train)#11.输出网格搜索找到的最佳参数组合print(f"\nBestparametersfoundbyGridSearchCV:{grid_search.best_params_}")#12.使用网格搜索找到的最佳模型进行预测,并计算准确率best_model=grid_search.best_estimator_y_pred_best=best_model.predict(X_test)accuracy_best=accuracy_score(y_test,y_pred_best)print(f"BestModelAccuracy:{accuracy_best:.4f}")#13.假设我们需要处理新的未知数据,并使用最佳模型进行预测#创建一些新的模拟数据(注意:新数据的列名和顺序必须与训练数据一致)#并且类别型特征需要与训练时使用的编码器保持一致new_data=pd.DataFrame({'sepallength(cm)':[5.1,6.5],'sepalwidth(cm)':[3.5,3.0],'petallength(cm)':[1.4,5.2],#包含一个缺失值'petalwidth(cm)':['0.2','1.8']#假设类别型特征以字符串形式给出,需要编码})#使用最佳模型(best_model)的predict方法进行预测#注意:best_model内部已经包含了preprocessor,所以直接传入原始新数据即可y_pred_new=best_model.predict(new_data)print(f"\nPredictionsfornewdata:{y_pred_new}")print(f"Predictedspeciesnames:{best_model.predict(new_data)}")#14.(思考题,无需代码)如果使用决策树(RandomForestClassifier)作为分类器,并重复上述的Pipeline构建、训练、评估过程,#你认为在预处理步骤、模型训练以及调优方面,与使用LogisticRegression相比,会有哪些主要的不同或需要注意的点?```---试卷答案第4题解析思路:本题考察数据划分。使用`train_test_split`函数将数据分为训练集和测试集是模型评估的标准步骤。需要设置`test_size`来指定测试集比例,`random_state`用于确保每次运行分割结果一致,便于复现和比较。这里指定`test_size=0.3`表示30%的数据用于测试。第5题解析思路:本题考察预处理步骤的创建。由于数据包含数值型和类别型特征,且数值型特征需要标准化,类别型特征需要独热编码,因此适合使用`ColumnTransformer`。需要明确指定`transformers`参数,为每种类型的特征指定对应的转换器(`StandardScaler`和`OneHotEncoder`)以及它们应用的列名。第6题解析思路:本题考察模型训练。使用`Pipeline`将预处理步骤和分类模型串联起来可以简化流程并防止数据泄露。训练模型只需调用`fit`方法,传入训练数据`X_train`和对应的标签`y_train`。Pipeline内部会自动按顺序执行`preprocessor`和`classifier`的`fit`方法。第7题解析思路:本题考察模型预测。使用训练好的Pipeline模型进行预测,只需调用`predict`方法,传入测试数据`X_test`。Pipeline内部会自动应用`preprocessor`的`transform`方法(因为测试集不需要再拟合预处理器)和`classifier`的`predict`方法。第8题解析思路:本题考察模型评估指标的计算。模型评估需要将预测结果`y_pred`与真实标签`y_test`进行比较。准确率(Accuracy)是常用的分类任务评估指标,计算预测正确的样本数占总样本数的比例。使用`accuracy_score`函数可以方便地计算得到。第9题解析思路:本题考察模型评估指标的深入理解。仅计算准确率可能无法全面反映模型性能,特别是当数据集类别不平衡时。分类报告(ClassificationReport)提供了更详细的性能指标,包括每个类别的精确率(Precision)、召回率(Recall)和F1分数(F1-Score),以及宏平均(MacroAverage)和微平均(MicroAverage)。使用`classification_report`函数可以生成该报告。第10题解析思路:本题考察超参数调优方法。为了找到模型的最佳性能,可以使用`GridSearchCV`进行网格搜索。需要定义一个参数网格`param_grid`,其中包含要搜索的参数名称(需使用`Pipeline`中步骤的名称作为前缀,如`classifier__C`)和对应的候选值。`GridSearchCV`会遍历所有参数组合,使用交叉验证(`cv=5`)评估每一组合的性能(`scoring='accuracy'`),最终选择最佳参数组合。需要调用`fit`方法执行搜索。第11题解析思路:本题考察网格搜索结果的获取。`GridSearchCV`对象在完成搜索后会记录下最佳参数组合。可以通过访问其`best_params_`属性来获取这些参数。这是选择最优模型配置的关键一步。第12题解析思路:本题考察使用最佳模型进行评估。网格搜索完成后,`GridSearchCV`的`best_estimator_`属性包含了使用最佳参数组合训练好的模型实例。可以使用这个最佳模型对测试集进行预测,并计算其准确率,以评估调优后的效果是否有所提升。第13题解析思路:本题考察模型在实际新数据上的应用。`Pipeline`的设计优势在于封装了预处理和模型,使得对新数据的预测变得简单。即使新数据包含缺失值或需要与训练时相同的编码,只需将新数据作为`DataFrame`传入最佳模型的`predict`方法即可。内部会自动调用`preprocessor`的`transform`方法处理新数据。第14题解析思路:本题考察对不同模型的比较理解(思考题)。如果将分类器从`LogisticRegression`更换为`RandomForestClassifier`,主要的不同点包括:1.模型原理:LogisticRegression是线性模型,假设数据线性可分;RandomForest是集成模型(基于决策树),通过多个决策树的投票进行预测,能捕捉更复杂的非线性关系。2.参数:两个模型的超参数不同。例如,RandomForest有`n_estimators`(树的数量)、`max_depth`(树的最大深度)、`min_samples_split`(分割内部节点所需的最小样本数)等关键参数。调优时需要关注这些新的参数。3.预处理依赖性:LogisticRegression通常对特征缩放敏感(特别是正则化项),而RandomForest对特
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025西安航天发动机有限公司校园招聘启动笔试历年参考题库附带答案详解
- 2025航天新气象科技有限公司招聘1人笔试历年参考题库附带答案详解
- 2025福建莆田市正美文旅投资有限公司招聘3人(四)笔试历年参考题库附带答案详解
- 2025福建福州平潭综合实验区人才发展集团有限公司第二十六批劳务外包招聘4人笔试历年参考题库附带答案详解
- 2025福建省大数据集团平潭有限公司招聘3人笔试历年参考题库附带答案详解
- 2025甘肃兰州能源投资集团有限公司招聘笔试历年参考题库附带答案详解
- 2025浙江温州市瓯飞新型建材有限公司招聘10人笔试历年参考题库附带答案详解
- 2025江苏盐城市滨海县阳光城市公交有限公司招聘拟聘用人员笔试历年参考题库附带答案详解
- 2025年淮南大通区某单位招聘劳务外包人员4人笔试历年参考题库附带答案详解
- 2025四川绵阳市长虹民生物流股份有限公司招聘软件开发工程师岗位1人笔试历年参考题库附带答案详解
- DZ∕T 0248-2014 岩石地球化学测量技术规程(正式版)
- 护理文书书写规范 (15)课件
- 二十四节气农事活动
- 食物中毒的心理援助与危机干预
- 2022星闪无线短距通信技术(SparkLink 1.0)安全白皮书网络安全
- 卫生公共基础知识考试大纲
- 小学数学六年级上册第五单元课件
- 《电子凭证会计数据标准-全面数字化的电子发票(试行版)》指南
- 湖南土建中级职称考试复习总结
- 混合痔痔的护理查房
- 大学物理实验长测量
评论
0/150
提交评论