在 Python 中读取用于决策树学习的 CSV 文本文件

Posted

技术标签:

【中文标题】在 Python 中读取用于决策树学习的 CSV 文本文件【英文标题】:Reading in a CSV text file for Decision Tree Learning in Python 【发布时间】:2021-03-16 07:15:43 【问题描述】:

使用 import csv 和 import sys

如何读取逗号分隔的值和属性列表,以便确定所述属性的信息增益以生成决策树模型?这是一个 csv 和一个属性的文本文件,其中包含它们的潜在值。

Russel 和 Norvig 的一个例子:

餐厅.csv:

Will-Wait,Alternative,Bar,Fri/Sat,Hungry,Patrons,Price,Rain,Reservation,Type,Estimated-Wait
Yes,Yes,No,No,Yes,Some,$$$,No,Yes,French,0-10
No,Yes,No,No,Yes,Full,$,No,No,Thai,30-60
Yes,No,Yes,No,No,Some,$,No,No,Burger,0-10
Yes,Yes,No,Yes,Yes,Full,$,No,No,Thai,10-30
No,Yes,No,Yes,No,Full,$$$,No,Yes,French,>60
Yes,No,Yes,No,Yes,Some,$$,Yes,Yes,Italian,0-10
No,No,Yes,No,No,None,$,Yes,No,Burger,0-10
Yes,No,No,No,Yes,Some,$$,Yes,Yes,Thai,0-10
No,No,Yes,Yes,No,Full,$,Yes,No,Burger,>60
No,Yes,Yes,Yes,Yes,Full,$$$,No,Yes,Italian,10-30
No,No,No,No,No,None,$,No,No,Thai,0-10
Yes,Yes,Yes,Yes,Yes,Full,$,No,No,Burger,30-60

餐厅属性.txt:

Will-Wait,Yes,No
Alternative,Yes,No
Bar,No,Yes
Fri/Sat,No,Yes
Hungry,Yes,No
Patrons,Some,Full,None
Price,$$$,$,$$
Rain,No,Yes
Reservation,Yes,No
Type,French,Thai,Burger,Italian
Estimated-Wait,0-10,30-60,10-30,>60

使用类似的东西...

restaurantSet = []

with open(sys.argv[1], newline='') as csvfile:
    restaurant = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for val in restaurant:
        x = [q for q in val]
        restaurantSet.append(x)

列出每个属性和属性值的最佳方法是什么?即赞助人将是 [Some, Full, Some, Full, Full, Some, None, Some, Full, Full, None, Full] 的列表。

【问题讨论】:

问题到底是什么?如何从文件中读取数据?从标准输入? 这是个好问题。您是否希望根据自己的直觉生成决策树?或者您是否希望使用机器学习来构建最佳树? 【参考方案1】:

如果你不介意使用 Pandas,你可以简单地使用

data = pd.read_csv("restaurant.csv", sep=",")

【讨论】:

是的,我认为这是一个好的开始。

以上是关于在 Python 中读取用于决策树学习的 CSV 文本文件的主要内容,如果未能解决你的问题,请参考以下文章

使用python解析CSV文件(稍后制作决策树)[关闭]

决策树问题一:读取文件头报错问题 has no attribute next

《机器学习实战》第3章 决策树 学习笔记

在 jupyter 中构建决策树的 KeyError:

RapidMiner:我可以使用通配符作为属性值来训练决策树模型吗?

python中针对数据集错误的决策树实现