【问题标题】:How can I make decision for exactly one data set using ID3 decision tree如何使用 ID3 决策树为一个数据集做出决策
【发布时间】:2021-07-13 04:59:59
【问题描述】:

我正在实施一个程序,询问用户他们的症状(是否有发烧、咳嗽、呼吸问题)以检查他们是否需要进行 COVID 测试。

我实现了我的 id3 决策树,在 csv 文件中使用了一些数据集

现在我希望程序能够提示用户输入他们的症状(他们是否有发烧、咳嗽、呼吸问题),并告诉他们一些信息

我的代码附在下面,问题是当我运行它时,出现了错误消息,我认为是因为我的txt文件中只有一个数据集

pandas.errors.EmptyDataError: No columns to parse from file

请问我该如何解决它,或者他们是仅针对一个数据做出决策的更好方法吗?

谢谢!

fever = input("Do you have a fever? (Yes or No) ")
cough = input("Do you cough? (Yes or No) ")
breathing_issue = input("Do you have short breating or other breathing issues? (Yes or No) ")
infected = "Yes"
test_sample = fever + "," + cough + "," + breathing_issue + "," +infected
f = open("test.txt", "w")
f.write(test_sample)
# convert to .csv
test_df = pd.read_csv(r'/Users/xxxx/xxxx/xxxx/test.txt', header=None, delim_whitespace=True)
train_df.columns = ['fever', 'cough', 'breating-issue', 'infected']
pd.set_option("display.max_columns", 500) # Load all columns

【问题讨论】:

  • 如果不知道 ID3 实现的结构和训练数据的结构,就无法回答预期的问题(为什么 ID3 不起作用)。

标签: artificial-intelligence decision-tree


【解决方案1】:

出现这种情况的原因是因为第 7-9 行读取了一个空数据帧。这是一个演示错误的最小可重现示例:

import pandas as pd

with open("test.txt", "w") as _fh:
  _fh.write("yes,no,yes,no")

df = pd.read_csv("test.txt")
print(df)

输出:

Empty DataFrame
Columns: [yes, no, yes.1, no.1]
Index: []

要获得非空 DataFrame,列需要名称或pd.read_csv 需要使用可选参数header=None 调用。这是一个写入列名的版本:

import pandas as pd

with open("test.txt", "w") as _fh:
  _fh.write("fever,cough,breathing_issues,infected\n")
  _fh.write("yes,no,yes,no")

df = pd.read_csv("test.txt")
print(df)

输出:

  fever cough breathing_issues infected
0   yes    no              yes       no

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 2015-02-18
    • 1970-01-01
    • 2011-01-18
    • 2018-07-07
    • 2012-12-20
    • 1970-01-01
    • 2018-06-23
    相关资源
    最近更新 更多