IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> python建模 决策_决策树python建模中的坑 -> 正文阅读

[数据结构与算法]python建模 决策_决策树python建模中的坑

今天是开学的第一个星期六,转眼一个星期就过去了,感觉什么也没有做。
这个星期完成了决策树的编写,还是遇到一些问题的。
首先:是csv文件的编写,不知道要将文件改成csv文件,只是简单的改了一个后缀,就一直错。最后找到问题所在
接着:因为x和y没有看清楚,就一直出现元素不匹配问题
还有:因为看的视频是好几年前的,所以有些函数都不用了,会出现很多警告,后面会有提示,将函数改成什么样子,但是因为自己不仔细去看,也找了好久问题。
最后,因为系统默认输入都是二维的数据,所以你要将你的数据改成二维的才能运行,不然系统会报错
总结:仔细,找bug真的不是一件容易的事情。这周的效率不高啊!!!

from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import  tree
from six import StringIO
from sklearn  import preprocessing

# 提取数据
allElectronicsData=open(r'E:\BaiduNetdiskDownload\31麦子学院视频\test\allelectronics.csv','rt')
#按行读取内容
reader = csv.reader(allElectronicsData)
headers = next(reader)
print(headers)
#数据预处理:输入数据的要求:一定要是数值型的数据,不能是字母或者数据。
#装数据信息
featureList = []
#装标签信息
labelList = []
for row in reader:
    labelList.append(row[len(row)-1])
    rowDict={}
    #取每一行的值,对应他的key,写成字典的形式
    for i in range(1,len(row)-1):
        rowDict[headers[i]] = row[i]
    featureList.append(rowDict)
print(featureList)

#构建决策树
vec = DictVectorizer()
#调用方法,就可以将其变成数值型的格式
dummyX = vec.fit_transform(featureList).toarray()
print("dummyX:"+str(dummyX))
print(vec.get_feature_names_out())
print("labelList:"+str(labelList))

Ib = preprocessing.LabelBinarizer()
dummyY=Ib.fit_transform(labelList)
print("dummyY:"+str(dummyY))


#构建树的算法。信息熵作为算法

clf = tree.DecisionTreeClassifier()
#建模,按照
clf = clf.fit(dummyX,dummyY)
print("clf:"+str(clf))
#可视化预测 打印画的图,文件名命名为 allelectronicInformationGainOri.dot


with open("allelectronicInformationGainOri.dot",'w',encoding="utf-8") as f:
    #还原过去的变量的名字,需要参数feature_names
     f = tree.export_graphviz(clf,feature_names=vec.get_feature_names_out(),out_file=f)

#开始预测
#取第一行开始
oneRowX = dummyX[0,:].reshape(1,-1)
print('oneRowX:'+str(oneRowX))

newRowX = oneRowX
newRowX[0][0] = 1
newRowX[0][2] = 1
newRowX.reshape(1, -1)
print ("newRowx:" + str(newRowX))

predictedY = clf.predict(newRowX)

print ("predictedY:"+str(predictedY))

结果图:在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:50:37  更:2022-02-28 15:55:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:29:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码