inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

에러 이유

해결된 질문

182

naegahaenaeem

작성한 질문수 5

0

안녕하세요! 캐글에 올려주신 자료로 공부 중 에러가 떴는데 어떻게 해결해야할지 몰라 질문 남깁니다!

너무 길어서 보기 어려운 점 미리 사과드립니다..ㅠㅠ

import pandas as pd
train = pd.read_csv("/kaggle/input/big-data-analytics-certification-kr-2024-3/train.csv")
test = pd.read_csv("/kaggle/input/big-data-analytics-certification-kr-2024-3/test.csv")
# EDA
# print(train.shape, test.shape) #(1168, 81) (292, 80)
# print(train.info()) #float64(3), int64(35), object(43)
# print(test.info()) #float64(3), int64(34), object(43)
# print(train.isnull().sum().sort_values(ascending=False)[:10])
#범주형 데이터가 너무 많아서 수치형만 선택
train=train.select_dtypes(exclude=['object'])
test=train.select_dtypes(exclude=['object'])
# print(train.head(2))
# print(train.isnull().sum()) #LotFrontage      218, GarageYrBlt       69
# print(test.isnull().sum())
# print(train['LotFrontage'].describe())
# print(train['GarageYrBlt'].describe())
#전처리(결측치, 타겟값 분리)
target=train.pop('SalePrice')
train=train.drop('Id',axis=1)
test_id=test.pop('Id')
train['LotFrontage']=train['LotFrontage'].fillna(train['LotFrontage'].mean())
train['GarageYrBlt']=train['GarageYrBlt'].fillna(train['GarageYrBlt'].mean())
train['MasVnrArea']=train['MasVnrArea'].fillna(train['MasVnrArea'].mean())
test['LotFrontage']=test['LotFrontage'].fillna(test['LotFrontage'].mean())
test['GarageYrBlt']=test['GarageYrBlt'].fillna(test['GarageYrBlt'].mean())
test['MasVnrArea']=test['MasVnrArea'].fillna(test['MasVnrArea'].mean())
# print(train.isnull().sum().sum()) 
# print(test.isnull().sum().sum())
#데이터 분리
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0)
# print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)
#랜포
from sklearn.ensemble import RandomForestRegressor
rf=RandomForestRegressor(random_state=0)
rf.fit(X_tr, y_tr)
pred=rf.predict(X_val)
#평가
from sklearn.metrics import mean_squared_error
def rmse(y, y_pred):
    return mean_squared_error(y, y_pred)**0.5
# print(rmse(y_val, pred))
#중앙값 : 34668.70085343153
#평균 : 33430.8118326734
# 최댓값 : 34100.46200633792
#최솟값 : 34023.36640178194
#예측
pred=rf.predict(test)
submit=pd.DataFrame({'Id':test_id, 'SalePrice':pred})
submit.to_csv('0000.csv', index=False)
pd.read_csv('0000.csv')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[55], line 68
     60     return mean_squared_error(y, y_pred)**0.5
     61 # print(rmse(y_val, pred))
     62 #중앙값 : 34668.70085343153
     63 #평균 : 33430.8118326734
   (...)
     66 
     67 #예측
---> 68 pred=rf.predict(test)
     69 submit=pd.DataFrame({'Id':test_id, 'SalePrice':pred})
     70 submit.to_csv('0000.csv', index=False)

File /opt/conda/lib/python3.10/site-packages/sklearn/ensemble/_forest.py:981, in ForestRegressor.predict(self, X)
    979 check_is_fitted(self)
    980 # Check data
--> 981 X = self._validate_X_predict(X)
    983 # Assign chunk of trees to jobs
    984 n_jobs, _, _ = _partition_estimators(self.n_estimators, self.n_jobs)

File /opt/conda/lib/python3.10/site-packages/sklearn/ensemble/_forest.py:602, in BaseForest._validate_X_predict(self, X)
    599 """
    600 Validate X whenever one tries to predict, apply, predict_proba."""
    601 check_is_fitted(self)
--> 602 X = self._validate_data(X, dtype=DTYPE, accept_sparse="csr", reset=False)
    603 if issparse(X) and (X.indices.dtype != np.intc or X.indptr.dtype != np.intc):
    604     raise ValueError("No support for np.int64 index based sparse matrices")

File /opt/conda/lib/python3.10/site-packages/sklearn/base.py:548, in BaseEstimator._validate_data(self, X, y, reset, validate_separately, **check_params)
    483 def _validate_data(
    484     self,
    485     X="no_validation",
   (...)
    489     **check_params,
    490 ):
    491     """Validate input data and set or check the `n_features_in_` attribute.
    492 
    493     Parameters
   (...)
    546         validated.
    547     """
--> 548     self._check_feature_names(X, reset=reset)
    550     if y is None and self._get_tags()["requires_y"]:
    551         raise ValueError(
    552             f"This {self.__class__.__name__} estimator "
    553             "requires y to be passed, but the target y is None."
    554         )

File /opt/conda/lib/python3.10/site-packages/sklearn/base.py:481, in BaseEstimator._check_feature_names(self, X, reset)
    476 if not missing_names and not unexpected_names:
    477     message += (
    478         "Feature names must be in the same order as they were in fit.\n"
    479     )
--> 481 raise ValueError(message)

ValueError: The feature names should match those that were passed during fit.
Feature names unseen at fit time:
- SalePric

 

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

답변 1

1

퇴근후딴짓

학습에서는 수치형만 선택해서 학습했는데

test 데이터를 사용할 때는 전체 컬럼을 사용했네요

 

코드 넣을 때 "코드 블럭"을 먼저 선택하고 코드를 복사-붙여넣기 해주세요 🙂

반대로 하면 보기가 힘들어지네요 하하! 화이팅입니다.

1유형 강의 다 나간 후 어떻게 할까요?

0

16

1

점수차가 많이 나는데 따로 하신게 있으신가요?

0

12

1

작업형1 모의문제 4번에 3)문제 질문

0

21

2

이상치 전처리 작업

0

25

2

평가결과값 문의

0

29

2

시계열 데이터 날짜와 시간 format

0

36

2

평가지표 F1 스코어 질문드립니다.

0

27

2

작업형 2 기출7회분에서

0

38

2

작업형2 모의문제1 (30강)

0

34

2

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

0

42

2

수강 계획과 관련해 문의 드립니다.

0

30

2

작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?

0

50

2

작업형 1 -연습문제 4-6

0

38

2

작업형 1 유형 부분

0

42

2

작업형 1 (삭제예정, 구 버전)

0

51

2

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

0

38

2

2유형 레이블 인코딩 VS 원핫 인코딩

0

37

3

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

0

45

2

인덱스 슬라이싱

0

37

2

질문 드립니다.

0

50

2

강의 내용 관련 질문드립니다~

0

46

2

수강 연장 문의

0

63

2

강의자료 일괄 다운로드

0

62

2

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

0

48

2