머신러닝/FAQ

평가 산식 (metrics) , 데이터 타입에 대한 대응

Stevelee_HMC 2023. 4. 13. 12:18
평가 산식은 일반적으로 예측 결과를 제출한 후에 right answer 와 prediction(예측값)의 
차이에 대한 성능 지표이다. 

위의 언급한 내용과 같이 평가에 대한 내용이라서 예측을 하는 참여자 입장에서 평가산식의 중요도는

최초에는 크지 않다. 다만 평가산식이 중요시하는 가치에 따라서 예측결과의 편향성을 고려해야하는 전제로 

본다면 중요할 수 있는데 최초의 baseline의 제출에 있어서는 크게 중요시하지 않는다.

 

평가산식을 활용할 경우는 분류 문제에서 precision , recall 등의 편향성을 띈 산식을 사용하는 경우

ex) precision이면 predict probability를 아주 높게 하면 됨 , recall이면 모두 positive로 예측하면 됨 

 

또는 , cross validation을 할때 make_scorer를 활용해서 셀프 메트릭으로 교차검증을 해서 결론을 도출하려고 할때

사용된다. 

 

* 회귀분석의 RMSE , RLMSE , NMAE , MAE , MSE 어떤것을 쓰냐는 평가의 문제라 구현에서는 추후 고려하면 됨

 

따라서 그런 경우가 아닌 경우엔 해당 문제의 성향(Classification 인지 Regression인지)만 파악하고 접근하고

baseline을 먼저 진행해서 도출하는 것을 추천한다.

 

데이터 타입에 대한 대응 

우리가 일반적으로 많이 쓰는 csv 방식이 아닐 경우라도 데이터를 불러오는 방식은 다양하다.

d

왼쪽 그림과 같이 pd.read_하위에 이렇게나 많다. 

대표적으로 csv , excel , parquet , pickle이 있으며 

해당 데이터를 불러오는 것은 csv , excel은 동일하다 단

"Unicode Error"가 뜬다면 

pd.read_csv("train.csv" , encoding = "CP949") 또는 

구글링을 통해 인코딩을 설정해주면 해결된다.

 

 

 

1) .pickle 일 경우 데이터 불러오는 법 

pd.read_pickle("train_pickle.pickle")

 

 

2) .parquet 사용하는 경우 

 

데이터가 너무 큰 경우 오래 걸릴때 csv를 데이터프레임으로 띄울때 오래걸린다. 이때 parquet를 쓰면 빠르다.

방법은 아래와 같다.

# 입력데이터 "train.csv"인데 용량이 너무 커서 오래 걸리는 경우

train = pd.read_csv("train.csv")
train.to_parquet("train.parquet")
train_01 = pd.read_parquet("train.parquet") 

# csv를 불러서 다시 parquet로 저장한 후에 다시 parquet를 불러오는 것