我一直在玩泰坦尼克号数据并在下面尝试了一个简单的if语句,没有"否则":
if passenger.gender == 'female':
predict[passenger_numberId] = 1
predict[passenger_numberId] = 0
我的代码运行正常,我的准确率为63%。当我使用" if else"修改语句时,准确度会提高,但我不明白为什么添加else与上面的简单语句不同,后面的链接是每个链接:http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/ifstatements.html:
if passenger.gender == 'female':
predict[passenger_numberId] = 1
else:
predict[passenger_numberId] = 0
我错过了什么?
答案 0 :(得分:2)
根据您的if
测试,会发生以下两种情况之一:
predict[passenger_numberId]
设置为1
首先,然后立即,将其设置为0
。predict[passenger_numberId]
设置为0
。因此,如果没有else
语句,您总是将predict[passenger_numberId]
设置为0
,而passenger.gender == 'female'
的结果实际上并不重要1}}测试是。
在else
测试没有通过时predict[passenger_numberId]
仅设置0
到if
,1
当它确实通过时。
换句话说,通过使用else
,您的代码现在采用两个路径中的一个,并且结果根据路径的选择而不同。如果没有else
,则无论测试结果如何,该值始终设置为0
。
答案 1 :(得分:0)
它始终将预测设置为0,因为没有别的。准确性应该告诉你,37%是女性。