2017-01-24 1 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()은 모든 값이 0 인 점을 제거합니다. 제거하지 않으려면 다음 인수를 전달해야합니다. remove_all_zeroes = False, remove_any_zeroes = False. 그래서 코드는 다음과 같습니다

(거짓 enron_data, features_list, remove_all_zeroes = 거짓, remove_any_zeroes =)

데이터 = featureFormat

0

이것은 당신이 언급하는 방법에서 코멘트에서입니다 ...

당신이 찾는 모든 기능 0.0 remove_any_zeroes가있는 모든 데이터 포인트를 생략합니다

remove_all_zeroes = TRUE = 당신이 찾는 기능 중 하나가있는 에 대한 모든 데이터 포인트를 생략 할 진정한 0.0

,536,

remove_all_zeroes : 특정 데이터 포인트에 대해 모든 기능이 0 인 경우 데이터 세트에 포인트가 유지되지 않습니다. 따라서, 기본값 인 것처럼 True로 두는 것이 좋습니다.

remove_any_zeroes :이 속성은 기본적으로 이미 False이므로 메서드 호출에서이 속성을 생략하면 False로 유지됩니다.