在 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 文本文件的主要内容,如果未能解决你的问题,请参考以下文章
决策树问题一:读取文件头报错问题 has no attribute next