인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

munjihey1127's profile image
munjihey1127

asked

[After-work activities] Big Data Analysis Engineer Practical (Work-type 1,2,3)

Kaggle Transcription Strategy

캐글 - 타이타닉 작업형2

Resolved

Written on

·

207

0

train=pd.read_csv("/kaggle/input/titanic/train.csv")

test=pd.read_csv("/kaggle/input/titanic/test.csv")

 

#전처리

train= train.fillna(0)

test= test.fillna(0)

 

from sklearn.preprocessing import LabelEncoder

le=LabelEncoder()

cols = ['Name','Sex','Ticket','Cabin','Embarked']

for col in cols:

train[col]= le.fit_transform(train[col])

test[col]=le.transform(test[col])

 

이렇게 실행했더니

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:224, in _encode(values, uniques, check_unknown)
    223 try:
--> 224     return _map_to_integer(values, uniques)
    225 except KeyError as e:

File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:164, in _map_to_integer(values, uniques)
    163 table = _nandict({val: i for i, val in enumerate(uniques)})
--> 164 return np.array([table[v] for v in values])

File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:164, in <listcomp>(.0)
    163 table = _nandict({val: i for i, val in enumerate(uniques)})
--> 164 return np.array([table[v] for v in values])

File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:158, in _nandict.__missing__(self, key)
    157     return self.nan_value
--> 158 raise KeyError(key)

KeyError: 'Wilkes, Mrs. James (Ellen Needs)'

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
Cell In[58], line 22
     20 for col in cols:
     21     train[col]= le.fit_transform(train[col])
---> 22     test[col]=le.transform(test[col])

File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_set_output.py:140, in _wrap_method_output.<locals>.wrapped(self, X, *args, **kwargs)
    138 @wraps(f)
    139 def wrapped(self, X, *args, **kwargs):
--> 140     data_to_wrap = f(self, X, *args, **kwargs)
    141     if isinstance(data_to_wrap, tuple):
    142         # only wrap the first output for cross decomposition
    143         return (
    144             _wrap_data_with_container(method, data_to_wrap[0], X, self),
    145             *data_to_wrap[1:],
    146         )

File /opt/conda/lib/python3.10/site-packages/sklearn/preprocessing/_label.py:139, in LabelEncoder.transform(self, y)
    136 if _num_samples(y) == 0:
    137     return np.array([])
--> 139 return _encode(y, uniques=self.classes_)

File /opt/conda/lib/python3.10/site-packages/sklearn/utils/_encode.py:226, in _encode(values, uniques, check_unknown)
    224         return _map_to_integer(values, uniques)
    225     except KeyError as e:
--> 226         raise ValueError(f"y contains previously unseen labels: {str(e)}")
    227 else:
    228     if check_unknown:

ValueError: y contains previously unseen labels: 'Wilkes, Mrs. James (Ellen Needs)'

이런 에러값이 나오는데 왜그런거죠?

강사님이 작성하신 풀이에는

결측치값을 놔두시고

오브젝트형인 데이터도 다 수치형으로 안바꾸시던데

왜그런거죠?

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

Answer 1

0

roadmap님의 프로필 이미지
roadmap
Instructor

Name은 train과 test에서의 종류가 많이 다릅니다. Name은 입력데이터로 사용하기 위해서는 다른방법을 사용해야 해요(예를들면 이름의 길이도 될 수 있고요) 입문자에게는 버리는 것을 추천합니다.

 

캐글에서의 코드는 예시일 뿐입니다. 무료로 오픈한 내용으로 꼼꼼히 작업하진 않았습니다.

작업을 초소화한 형태로 수치형만 사용해서 모델을 만들었어요 (간단한 모델로 생각해주세요)

munjihey1127's profile image
munjihey1127

asked

Ask a question