인프런 커뮤니티 질문&답변

nahye1137님의 프로필 이미지

작성한 질문수

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

예시문제 작업형2(신 버전) 🆕 updated 2023.11

roc_auc에서 DataConversionWarning 발생

해결된 질문

24.06.15 10:51 작성

·

70

0

체험환경 2유형 학습중에 DataConversionWarning가 발생해서 문의드립니다. 아래와 같이 코드 작성 후에 roc_auc로 성능평가하는 과정에서 워닝이 발생했는데 이유가 무엇인가요??

 

 

# print(train.shape, test.shape) # (3500, 11) (2482, 10)

# print(train.isnull().sum())

# print(test.isnull().sum())

train = train.fillna({'환불금액' : train['환불금액'].median()})

test = test.fillna({'환불금액' : test['환불금액'].median()})

# print(train.isnull().sum().sum())

# print(test.isnull().sum().sum())

# print(train.info())

# print(test.info())

# print(train.describe(include='O'))

# print(test.describe(include='O'))

# print(train.head())

target = train.pop('성별')

train = train.drop(['회원ID'], axis=1)

test_id = test.pop('회원ID')

# print(train.shape, test.shape)

c_train = train.select_dtypes(exclude='number')

n_train = train.select_dtypes(include='number')

c_test = test.select_dtypes(exclude='number')

n_test = test.select_dtypes(include='number')

from sklearn.preprocessing import LabelEncoder

for i in c_train.columns:

le = LabelEncoder()

c_train[i] = le.fit_transform(c_train[[i]])

c_test[i] = le.transform(c_test[[i]])

train = pd.concat([c_train, n_train], axis=1)

test = pd.concat([c_test, n_test], axis=1)

# print(train.head())

# print(train.shape, test.shape)

from sklearn.model_selection import train_test_split

x_tr, x_val, y_tr, y_val = train_test_split(train, target, random_state=2024, test_size=0.2, stratify=target)

print(x_tr.shape, x_val.shape, y_tr.shape, y_val.shape)

from sklearn.ensemble import RandomForestClassifier

rfc = RandomForestClassifier(random_state=2024)

rfc.fit(x_tr, y_tr)

pred1 = rfc.predict_proba(x_val)

print(pred1[:,1].shape)

print(y_val.shape)

from sklearn.metrics import roc_auc_score

print(roc_auc_score(y_val, pred1[:,1]))

 

 

 

>>

프로세스가 시작되었습니다.(입력값을 직접 입력해 주세요)

> (2800, 9) (700, 9) (2800,) (700,)

(700,)

(700,)

0.6341283030687979

/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().

return f(*args, **kwargs)

/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().

return f(*args, **kwargs)

/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().

return f(*args, **kwargs)

/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py:63: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().

return f(*args, **kwargs)

프로세스가 종료되었습니다.

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2024. 06. 15. 13:46

c_train[i] = le.fit_transform(c_train[i])

c_test[i] = le.transform(c_test[i])

인코딩시 컬럼 1개씩 시리즈 형태로 입력합니다. 따라서 대괄호 1개만 사용하면 됩니다.