人工智能基础及应用 第10章 基于决策树分类案例-源码_第1页
人工智能基础及应用 第10章 基于决策树分类案例-源码_第2页
人工智能基础及应用 第10章 基于决策树分类案例-源码_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运行环境:jupyternotebook6.5.7中python3注意:数据集需自己导入,可能需要安装一个python包,指令:pipinstallgraphviz案例1:根据数据集生成决策树并做简单预测。实现过程:导入相关包和数据集。importpandasaspd#导入pandas库用于数据处理fromsklearnimporttree#导入sklearn中的tree模块,含决策树算法importpydotplus#导入pydotplus库用于决策树的可视化fromsklearn.treeimportDecisionTreeClassifier#从sklearn.tree中导入DecisionTreeClassifier类importmatplotlib.pyplotasplt#导入matplotlib.pyplot用于图像显示importmatplotlib.imageaspltimg#导入matplotlib.image用于读取图像文件importgraphviz#创建和可视化图形(如流程图、组织结构图、状态图等)df=pd.read_csv("show.csv")#读取CSV文件到DataFrameprint(df)#打印DataFrame以查看数据数据预处理:将非数字列转换为数值。d={'UK':0,'USA':1,'N':2}#创建映射字典df['Nationality']=df['Nationality'].map(d)#使用map方法转换Nationality列d={'YES':1,'NO':0}#创建另一个映射字典df['Go']=df['Go'].map(d)#使用map方法转换Go列print(df)#打印转换后的DataFrame数据集划分:分离特征列和目标列。features=['Nationality','Age','Experience','Rank']#调整特征列顺序,将Nationality放在首位X=df[features]#提取特征列数据y=df['Go']#提取目标列数据print(X)#打印特征数据print(y)#打印目标数据创建并训练决策树。#使用DecisionTreeClassifier创建决策树模型,指定使用信息增益(Entropy)作为分裂标准,并设置随机种子dtree=DecisionTreeClassifier(criterion='entropy',random_state=42)#训练模型dtree=dtree.fit(X,y)#导出决策树为图形表示data=tree.export_graphviz(dtree,out_file=None,feature_names=features)#导出决策树为图形表示,将决策树模型转换为graphviz可用的格式数据graph=graphviz.Source(data)#创建graphviz的Source对象,用于进一步处理决策树图形数据graph.render('mydecisiontree',format='png',view=False)#将决策树图形渲染为png格式文件并保存#显示决策树图像img=pltimg.imread('mydecisiontree.png')#显示决策树图像,读取保存的png格式决策树图像文件plt.imshow(img)#在matplotlib中显示图像plt.axis('off')#关闭图像坐标轴显示,使图像展示更简洁plt.show()#展示图像数据预测。#使用训练好的决策树模型进行预测#预测示例1:40岁的美国喜剧演员,10年经验,排名7print(dtree.predict([[1,40,10,7]]))print("[1]means'GO'")print("[0]means'NO'")#预测示例2:40岁的美国喜剧演员,10年经验,排名6print(dtree.predict([[1,40,10,6]]))print("[1]means'GO'")print("[0]means'NO'")案例2:泰坦尼克号数据集生成决策树进行预测。导入数据。importpandasaspd#导入数据titanic=pd.read_csv("titanic.csv")#利用pandas的read.csv模块从互联网中收集泰坦尼克号数集数据的分析和预处理。titanic.head()#首先观察数据的基本特征()#使用pandas的info属性查看数据的统计特征#注:数据共有891条乘客信息,有些特征是完整的,有一些是不完整的,如name和pclass是完整#的,age是不完整的#由于数据比较久远,难免会丢失掉一些数据,造成数据的不完整,也有数据是没有量化的#在决策树模型之前,需要对数据作一些预处理和分析的工作X=titanic[['pclass','age','sex']]#特征选择,这里根据对泰坦尼克号的了解,sex、age、#pclass作为判断生还的三个主要因素y=titanic['survived']X.info()#对当前选择的特征进行探查X['age'].fillna(X['age'].mean(),inplace=True)#根据上面的输出,设计几个数据处理#的任务;①age这个数据列,只有714个,需要补全完整;②sex数据列需要转化为数值,比如#one-hot编码X.info()(3)数据集划分。fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=33)(4)数据集的特征转化。fromsklearn.feature_extractionimportDictVectorizervec=DictVectorizer(sparse=False)#转换特征后,我们发现凡是类别型的值的特征都单独#剥离出来了,独成一列特征,数据型不改变其值X_train=vec.fit_transform(X_train.to_dict(orient='records'))X_trainvec.feature_names_X_test=vec.transform(X_test.to_dict(orient='records'))(5)使用决策树模型进行预测。fromsklearn.treeimportDecisionTreeClassifierdtc=DecisionTreeClassifier()#使用默认的配置初始化决策树模型dtc.fit(X_train,y_train)#使用分割的数据进行模型的学习y_predict=dtc.predict(X_test)#用训练好的模型对测试数据集进行预测输出准确率与详细的分类信息。fromsklearn.metricsimportcla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论