python - find-s 算法的输出
问题描述
我正在尝试打印最具体的假设作为 find-S 算法的输出。
我得到错误的输出
我已经用python编写了一个基本代码来做到这一点。
import csv
with open('C:/Users/User_name/tennis.csv','r')as f:
reader=csv.reader(f)
your_list=list(reader)
h=[['0','0','0','0','0','0']]
for i in your_list:
print(i)
if i[-1] =="True":
j=0
for x in i:
if x !="True":
if x !=h[0][j] and h[0][j]=='0':
h[0][j]=x
elif x!=h[0][j] and h[0][j]!='0':
h[0][j]='?'
else:
pass
j=j+1
print("the maximally specific hypothesis is",h)
['sky', 'temp', 'humidity', 'wind', 'water', 'forecast', 'target']
['sunny', 'warm', 'normal', 'strong', 'warm', 'same', 'True']
['sunny', 'warm', 'high', 'strong', 'warm', 'same', 'True']
['rainy', 'cold', 'high', 'strong', 'warm', 'change', 'False']
['sunny', 'warm', 'high', 'strong', 'cool', 'change', 'True']
最大特异性假设是
[['?', '0', '0', '0', '0', '0']]
这是输出,我得到但这是我应该得到的输出:
[['sunny','warm','?','strong','?','?']]
解决方案
您的代码几乎是正确的请移动循环j=j+1
内部。for
import csv
with open('C:/Users/User_name/tennis.csv','r')as f:
reader=csv.reader(f)
your_list=list(reader)
h=[['0','0','0','0','0','0']]
for i in your_list:
print(i)
if i[-1] =="True":
j=0
for x in i:
if x !="True":
if x !=h[0][j] and h[0][j]=='0':
h[0][j]=x
elif x!=h[0][j] and h[0][j]!='0':
h[0][j]='?'
j=j+1
print("the maximally specific hypothesis is",h)
['sky', 'temp', 'humidity', 'wind', 'water', 'forecast', 'target']
['sunny', 'warm', 'normal', 'strong', 'warm', 'same', 'True']
['sunny', 'warm', 'high', 'strong', 'warm', 'same', 'True']
['rainy', 'cold', 'high', 'strong', 'warm', 'change', 'False']
['sunny', 'warm', 'high', 'strong', 'cool', 'change', 'True']
推荐阅读
- angular - 如何设计http请求服务?我究竟做错了什么?
- jestjs - 升级 Jest 后运行测试时出错
- jmeter - 使用 JMeter 的动态请求
- c++ - 调用 C++ 基方法而不是派生方法
- python - 如何解决 c = cov(x, y, rowvar) RuntimeWarning:python 3.8 中切片错误的自由度 <= 0?
- c# - 如何解构可空元组?
- javascript - 如何在 html 中包含要使用的脚本
- javascript - 测试 SVG 路径(“d”属性)字符串是否有效
- python - Django paginator changes pages content every iteration
- .htaccess - 仅使用 .htaccess 设置 symfony4 URI