2017-01-24 6 views
2

Я немного смущен этой командой, поскольку кажется, что когда я использую ее, некоторые данные удаляются из моего набора данных. Вот как:featureFormat() функция удаляет некоторые пункты?

enron_data = pickle.load(open("final_project_dataset.pkl", "r")) 

print len(enron_data.keys()) 

и я получаю: 146

Теперь, когда я делаю это:

features_list = ["poi", "salary", "exercised_stock_options", "total_payments", "bonus","expenses"] 

data = featureFormat(enron_data, features_list) 

poi, finance_features = targetFeatureSplit(data) 

print len(finance_features) 

я получаю 140. Видимо 6 очков не представлены здесь. Что происходит?

ответ

2

Я только что получил ответ на этот вопрос. Оказывается, по умолчанию featureFormat() удаляет точки, где все значения равны нулю. Если вы не хотите их удалять, вы должны передать эти аргументы: remove_all_zeroes = False, remove_any_zeroes = False. так что код будет выглядеть следующим образом:

данные = featureFormat (enron_data, features_list, remove_all_zeroes = False, remove_any_zeroes = False)

0

Это из комментариев от метода вы ссылаетесь ...

remove_all_zeroes = True опустят все точки данных, для которых всех функций, которые ищут являются 0.0 remove_any_zeroes = True опустят все точки данных, для которых любые из функций, которые вы ищете являются 0,0

remove_all_zeroes: Если все функции равны нулю для конкретной точки данных, в наборе данных нет смысла удерживать ее. Следовательно, рекомендуется оставить его как True, как это сделано по умолчанию.

remove_any_zeroes: по умолчанию это значение False, поэтому, если вы опустите его из вызова метода, оно останется False.