inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

모델링 및 평가(분류)

머신러닝 실행 오류(ValueError: Input X contains NaN.) 질문드립니다

해결된 질문

4083

duddl

작성한 질문수 7

0

 

안녕하세요. 동영상대로 따라하다가 에러가 났는데 잘못된 부분을 찾지 못해 질문드립니다 ㅠㅠ

[고/저소득을 0또는 1로 분류할 때]

저는 x,y,test로 3개 데이터를 불러온 후->전처리->피처엔지니어링까지 했고

 

inty=(y['income']=='>50K').astype(int)

from sklearn.model_selection import train_test_split
x_tr, x_val, y_tr, y_val= train_test_split(x, inty, test_size=0.1, random_state=100)


x_tr.shape, x_val.shape, y_tr.shape, y_val.shape

여기서 값이 ((26373, 15), (2931, 15), (26373,), (2931,))

이렇게 나오면서 정상 실행 됐는데요..

from sklearn.ensemble import RandomForestClassifier
rf=RandomForestClassifier()
rf.fit(x_tr,y_tr)
pred=rf.predict(x_val)

**여기에서 아래와 같은 오류가 납니다.ㅠㅠ 왜 그런 걸까요ㅠㅠㅠ
<ipython-input-112-e7142a22ea96> in <cell line: 3>()
      1 from sklearn.ensemble import RandomForestClassifier
      2 rf=RandomForestClassifier()
----> 3 rf.fit(x_tr,y_tr)
      4 pred=rf.predict(x_val)

/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in _assert_all_finite(X, allow_nan, msg_dtype, estimator_name, input_name)
    159                 "#estimators-that-handle-nan-values"
    160             )
--> 161         raise ValueError(msg_err)
    162 
    163 

ValueError: Input X contains NaN.

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 2

1

퇴근후딴짓

  1. x 와 y 데이터 갯수가 맞아야 해요 행을 삭제 한다면 합쳐서 진행해주세요! 3개가 x에서는 삭제되었는데 y에서는 삭제가 되지 않은 것 같아요 !!

  2. test 데이터는 이상치 처리 하는 것이 아닙니다. test=test[test['age']>=0] 에서 음수가 없는 것으로 알지만 혹시 음수가 있어 행이 삭제 된다면 작업형 2에서는 0점 처리됩니다.

    그 이유는 우리가 예측해야 하는 행이 100개인데 수험생이 임의로 90개만 제출하면 체점을 할 수가 없어 0점 처리 됩니다.

  3. 이상치 처리는 꼭 해야 하는 것이 아닌 선택입니다. 꼭 해야 하는건 아니니 이상치 처리는 제외하고 학습하는것을 추천해요!

1

duddl

아아! 네!여기에 주의해야 할 두 가지 경우가 다 포함이었네요!! 너무 감사합니다!!

0

퇴근후딴짓

데이터 전처리가 진행 되었을가요? 결측치가 처리되지 않아서 나타나는 에러입니다

완성된 코드에서 제공되는 노트북을 확인한 후 결측치 처리 부탁해요!!

0

duddl

넵!! 감사합니다!! 결측치->이상치 처리 순으로 했고, 결측치 처리에서는 삭제 없이 모든 값을 대체했습니다!!

그리고, 처음부터 코드를 다시 돌려봤는데요

원래 x,y에서 29304개이던 데이터가

age 이상치 처리에서

x=x[x['age']>=0]

test=test[test['age']>=0]

이렇게 하면 x가 29301개로 바뀌고 에러코드도

ValueError: Found input variables with inconsistent numbers of samples: [29301, 29304]

이렇게 나옵니다.

 

그런데, age이상치 처리하는 함수를 빼고 다시 실행하면 갯수가 맞아서 이상없이 진행되는데, age 이상치처리하는 과정이 잘못된걸까요?ㅜㅜ (test갯수는 생략했습니다) 감사합니다!!!

수강 연장 문의드립니다.

0

32

2

강의 연장 문의

0

35

2

수강 신청 연장 문의드립니다.

0

49

2

작업형 1번문제... 환경관련

0

32

2

12회 기출은 언제 업데이트 될까요??

0

41

2

8/6 작성한 연장문의 질문글에 대한 재요청

0

39

2

수강기간 연장 문의

0

41

2

수강기간 연장문의

0

37

2

수강기간 연장 요청 문의드립니다

0

38

2

수강 기간 연장 문의

0

47

2

수강연장 가능 문의 (기간 약 한달반)

0

60

2

수강기간 연장 가능할까요 선생님

0

74

2

Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.

0

56

3

수강연장요청 문의

0

92

2

아무래도 다음 시험 연장은 어렵겠죠?

0

111

2

빅분기 12회 결과 관련 문의

0

114

1

책이랑 강의랑 순서나 예제가 다른것 같네요

0

83

2

수강연장 문의

0

107

2

재검토 요청 방법 좀 알려주셔요...-.-;;

0

108

2

12회 실기 질문(작업형 2)

0

94

2

뒤로가기 버튼 같은 것이 있나요?

0

68

1

강의 연장 문의

0

101

2

출력값 질문

0

74

2

수업노트가 어디에 있나요?

0

64

1