2016-05-11 2 views
-7

я играл с данными титанических и попытался простой, если заявление ниже, без «еще»:Если заявление против, если еще

if passenger.gender == 'female': 
    predict[passenger_numberId] = 1 
predict[passenger_numberId] = 0 

Мой код работает отлично, и я получаю точность 63%. Когда я изменяю заявление с «если еще», точность возрастает, но я не понимаю, почему добавление еще отличается от моей простой констатации выше, что следует инструкции за ссылку: 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 

Что я упускаю?

+5

Без результата результат всегда равен 0, так как нижняя строка всегда выполняется. То, что вам не хватает, - это знание инструкций if/else. –

+0

Недолго, спасибо за ваш ответ @TimCastelijns –

ответ

2

На основе вашего if теста, один из двух следующих событий:

  • вы установили predict[passenger_numberId] в 1первый, затем сразу, установите его в 0.
  • вы установили predict[passenger_numberId] в 0.

Таким образом, без else заявления, вы всегда установить predict[passenger_numberId] в 0, и это на самом деле не важно, что результат теста passenger.gender == 'female' есть.

С помощью else вы только установить predict[passenger_numberId] в 0, когда тест if не прошел, и 1, когда он проходит.

Другими словами, с помощью else ваш код теперь принимает один из двух путей, и результат отличается в зависимости от выбора путей. Без else значение всегда устанавливается равным 0 независимо от теста.

+0

спасибо @MartijnPieters! –

0

Он всегда задает значение 0, потому что больше нет. Точность должна сказать вам, что 37% составляют женщины.

+0

спасибо @PMARINA –

Смежные вопросы