해결된 질문
작성
·
201
0
섹션14 작업형2 어떤 부분이 문제일까요 ㅠㅠ?
ValueError: could not convert string to float: 'Healthcare'
이런 오류가 뜹니다..
target = train.pop('Segmentation')
test_ID = test.pop('ID')
# 연속형 변수 스케일링
num = ['Age', 'Work_Experience', 'Family_Size']
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
train[num] = scaler.fit_transform(train[num])
test[num] = scaler.fit_transform(test[num])
# 범주형 변수 원핫인코딩
cols = ['Gender', 'Ever_Married', 'Graduated', 'Spending_Score']
train = pd.get_dummies(data = train, columns = cols)
test = pd.get_dummies(data = test, columns = cols)
# 평가
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(train, target)
pred = model.predict(test)
# 제출
pred = model.predict(test)
pd.DataFrame({'ID': test_cust_id, 'Segmentation': pred}).to_csv('003000000.csv', index=False)
답변 1
0
문자가 남아 있는 것 같은데 프로페션 컬럼은 인코딩하지 않고 그대로 둔 것 같아요!
스케일링 할때 test에는 fit을 빼주세요~
train[num] = scaler.fit_transform(train[num])
test[num] = scaler.transform(test[num])
위 두가지 수정 했더니 해결됐습니다. 감사합니다~!