当前位置: 首页 > news >正文

哈尔滨市网站建设_网站建设公司_云服务器_seo优化

福州公司网站,工程交易服务主页,知名商城网站建设报价,环保网站建设的主题1.实验目的 1.会用Python提供的sklearn库中的决策树算法对数据进行分类 2.会用Python提供的sklearn库中的随机森林算法对数据进行分类 3.会用Python提供的方法对数据进行预处理 2.设备与环境 使用Spyder并借助Python语言进行实现 3.实验原理 决策树( Decision Tree) 又称为…1.实验目的 1.会用Python提供的sklearn库中的决策树算法对数据进行分类 2.会用Python提供的sklearn库中的随机森林算法对数据进行分类 3.会用Python提供的方法对数据进行预处理 2.设备与环境 使用Spyder并借助Python语言进行实现 3.实验原理 决策树( Decision Tree) 又称为判定树是数据挖掘技术中的一种重要的分类与回归方法它是一种以树结构包括二叉树和多叉树形式来表达的预测分析模型。其每个非叶节点表示一个特征属性上的测试每个分支代表这个特征属性在某个值域上的输出而每个叶节点存放一个类别。 决策树的构建 1.特征选择选取有较强分类能力的特征。 2.决策树生成典型的算法有 ID3 和 C4.5 它们生成决策树过程相似 ID3 是采用信息增益作为特征选择度量 而 C4.5 采用信息增益比率。 3.决策树剪枝剪枝原因是决策树生成算法生成的树对训练数据的预测很准确 但是对于未知数据分类很差 这就产生了过拟合的现象。涉及算法有CART算法。 4.实验内容 使用决策树算法和随机森林算法对income_classification.csv的收入水平进行分类。训练集和测试集的比例是7:3选取适当的特征列使得针对测试样本的分类准确率在80%以上比较2种分类方法的准确率。 数据说明 特征列 age年龄整数 workclass工作性质字符串 education教育程度字符串 education_num受教育年限整数 maritial_status婚姻状况字符串 occupation职业字符串 relationship亲戚关系字符串 race种族字符串 sex性别字符串 capital_gain资本收益浮点数 capital_loss资本损失浮点数 hours_per_week每周工作小时数浮点数 native_country原籍字符串 分类标签列income imcome 50K Imcome ≤ 50K 1.读入数据并显示数据的维度和前5行数据 import pandas as pd import numpy as np 2. 对连续变量年龄进行离散化并显示前5行数据离散化后的结果 age_bins [20, 30,40, 50, 60, 70] 3.对属性是字符串的任意特征进行数字编号处理显示前5行编码后的结果每个特定的字符串用一个整数来表示整数序列从0开始增长。 from sklearn.preprocessing import LabelEncoder enc LabelEncoder() 4.对预处理后的数据用决策树算法和随机森林算法分类 实验步骤 选择合适的若干特征字段按7:3划分训练集和样本集使用训练集训练一个决策树分类器使用测试集计算决策树分类器的分类准确率使用训练集训练一个随机森林分类器使用测试集计算随机森林分类器的分类准确率 fromsklearn.ensemble import RandomForestClassifier from sklearn importtree fromsklearn.preprocessing import LabelEncoder fromsklearn.feature_extraction import DictVectorizer accuracy_random clf_random.score(xTest, yTest) 5.实验结果分析 利用决策树和随机森林求解得到的结果如下 6.附录代码 #决策树和随机森林 import numpy as np import pandas as pd from sklearn import tree from sklearn.ensemble import RandomForestClassifier from sklearn.feature_extraction import DictVectorizer from sklearn.preprocessing import LabelEncoderprint(1.载入数据.....) data pd.read_excel(rC:\Users\user\Desktop\income_classification.xlsx, header0) print(数据的维度和前五行数据, data.shape) print(data.head())print(对连续变量age进行离散化处理等宽分成五类显示前五行) AGE_CUT pd.cut(xdata[age], bins5, labelsrange(0, 5)) data[age] AGE_CUT print(data.head(5)) class_le LabelEncoder() data[workclass] pd.DataFrame(class_le.fit_transform(data[workclass])) data[marital-status] pd.DataFrame(class_le.fit_transform(data[marital-status])) data[occupation] pd.DataFrame(class_le.fit_transform(data[occupation])) data[education] pd.DataFrame(class_le.fit_transform(data[education])) data[native-country] pd.DataFrame(class_le.fit_transform(data[native-country])) data[relationship] pd.DataFrame(class_le.fit_transform(data[relationship])) data[race] pd.DataFrame(class_le.fit_transform(data[race])) data[sex] pd.DataFrame(class_le.fit_transform(data[sex])) print(显示前五行编码后的结果) print(data.head(5)) data1 [] labels [] for index, row in data.iterrows():# data需要是字典形式因为之后需要使用DictVectorizer()修改字符串数据类型以便符合DecisionTreeClassifier()rowDict {}row list(row)rowDict[age] row[0]rowDict[workclass] row[1]rowDict[education] row[2]rowDict[education_num] row[3]rowDict[maritial_status] row[4]rowDict[occupation] row[5]rowDict[relationship] row[6]rowDict[race] row[7]rowDict[sex] row[8]rowDict[capital_gain] row[9]rowDict[capital_loss] row[10]rowDict[hours_per_week] row[11]rowDict[native_country] row[12]data1.append(rowDict)labels.append(row[-1])print(2. 构造数据和标签.....) x np.array(data1) labels np.array(labels) y np.zeros(labels.shape) # 初始label全为0 y[labels 50K] 0 # 当label等于这三种属性的话设置为1。 y[labels 50K] 1# 转换字符串数据类型 print(3.转换字符串数据类型.....) vec DictVectorizer() dx vec.fit_transform(x).toarray()# 拆分成训练数据和测试数据 print(4.拆分训练数据和测试数据.....) print(训练集和验证集比例7:3) ratio 0.7 xTrain [] yTrain [] xTest [] yTest [] features xTrain, xTest labels yTrain, yTest for i in range(len(dx)):dataSetIndex 0 if np.random.random() ratio else 1features[dataSetIndex].append(dx[i])labels[dataSetIndex].append(y[i])# CART决策树分类 print(5.CART决策树分类.....) clf_cart tree.DecisionTreeClassifier(criterionentropy) # CART算法使用entropy作为标准默认是是用gini作为标准 clf_cart.fit(xTrain, yTrain)# 检查准确率 accuracy_cart clf_cart.score(xTest, yTest) print(CART树分类准确率, accuracy_cart)print(6.随机森林分类.....) clf_random RandomForestClassifier() clf_random.fit(xTrain, yTrain)# 检查准确率 accuracy_random clf_random.score(xTest, yTest) print(随机森林分类准确率, accuracy_random)
http://www.lebaoying.cn/news/135388.html

相关文章:

  • 合肥网站优化公司湖南建设监理协会网站
  • 网站开发素材包做英文网站要用什么字体
  • 请人开发一个网站需要多少钱温州网站建设服务器
  • 南部县建设局网站深圳官方网站制作
  • 做网站硬件可以做外贸的网站有哪些
  • 简述建设一个商务网站的过程建设网站平台哪里最好
  • 秦皇岛做网站公司排名网站开发作业代做
  • 南通网站建设机构专业网页设计培训
  • 外贸SOHO建公司网站自建网站做淘宝联盟
  • 自驾游自由行网站建设如何创建网站服务器地址
  • 网站建设采取招标的形式怎么做网页挣钱
  • 河北网站seo策划南昌网站设计
  • 网站建设未完成营销方案和销售思路
  • 网站广告推广公司怎么做自己的音乐网站
  • 南京网站建设咨询中山市网站开发
  • 郑州网站制百度关键词价格查询软件
  • 竞拍网站建设深圳网站建设行业新闻
  • 网站服务费算什么费用建设银行深分行圳招聘网站
  • 做网站实时数据用接口电影网站制作
  • 网站搜索栏建立wordpress 禁用响应式
  • 织梦网站搜索怎么做巴楚网站建设
  • 颜色选取网站成都住建局官网查询入口
  • 网站编程语言排行榜网站报301错误
  • 动易网站中添加邮箱中国最好的网站建设
  • 品牌微信网站建设网络营销简介
  • 财务公司网站源码庆阳网红刘斌
  • ios开发网站app网站建设营销外包公司排名
  • 网站展示模板psd下载湖北建设工程造价协会网站
  • 手机网站 微信小程序广州海珠区房价
  • 陕西网站建设价位多少做亚马逊学英语有什么网站吗