:그냥 markdwon용으로 써지는지 체험해봤다.
결측치(missing data) 만들어 보기
test_matrix = np.array([[1,2,3], [4, np.nan, 5], [5, np.nan, np.nan]]) missingno.matrix(test_matrix)
하니 오류가 뜬다.np.nan
으로 nan 값이 만들어지긴 한다.missingno.matrix()
메소드가 numpy.ndarray' object has no attribute 'notnull'
라며 오류를 낸다..판다스 인덱싱이 없다면 결측치를 찾기 위해 for loop을 해야 한다.(단편적인 판다스 데이터프레임의 편리성 의미)
np.log1p()
의 리턴값은 log(1+x)란다.
method returns log(1+number), computed in a way that is accurate even when the value of number is close to zero.
란다
np.log1p()
한 값을 다시 되돌리는 건 np.exp1m()
이란다.sns.kdeplot(data=)
은 보니까 로 data 파라미터 하나만 줘도 되나 보다
로그 변환의 성질 이해
이미지, 영상, 음성 등의 비정형 데이터의 분류는 딥러닝이 뛰어난 성능을 보이고 있지만, 대부분의 정형 데이터 분류 시에는 앙상블이 뛰어난 성능을 보이고 있다...!
블렌딩 등을 이용하여 성능을 높여가면 정확도는 높아지나, 해석이 어려워진다.
: 과정(즉, 해석)보다 정확도(결과)가 중요한 의료 분야, competition에서는 이런 게 많이 쓰인단다.
앙상블(ensemble) 기법은 두 가지로 나뉠 수 있단다.
cross_valdiation을 이용한 간단한 모델들의 성능 평가를 위한 코드
def get_cv_score(models): kfold = KFold(n_splits=5).get_n_splits(x.values) for m in models: CV_score = np.mean(cross_val_score(m['model'], X=x.values, y=y, cv=kfold)) print(f"Model: {m['name']}, CV score:{CV_score:.4f}")```
kfold
는 사실 int
이다.K-Fold-Cross-Validation에 대한 개념을 좀 잡고 가는 게 좋겠다.
는 이 글이 좋은 것 같다.(https://ltlkodae.tistory.com/19)
: 직관적으로는 예측값이 타겟의 ~~%를 설명해준다.
하이퍼파라미터 찾기
함수 만들 때 나만의 파라미터를 만들고 그 파라미터가 있어도 되고 없어도 되면, 기본값으로 None
주면 되는 것 같다.
: 예) def save_submit(... RMSLE=None)
EDA를 혼자서 처음 해봤는데 재미있으면서 시간이 굉장히 많이 뺐겻다...
yr_renovated
컬럼에서 다중 조건으로 불린인덱싱 후 해당 값들만 쏙쏙 다른 값으로 바꾸는 것에 2~3시간 정도 헤맸다...apply()
함수를 쓰면 쏙쏙 해당 값들만 바뀔 줄 알았는데 Series
전체를 다 꺼내서 바꾸는 것이라 앞서 특정 조건의 행 값을 바꾼 것들이 다 NaN
값이 되었다...float
형태가 있었는데, 이걸 바꾸는 방법을 찾다가 시간이 많이 쓰였다..df_train['yr_renovated'].copy().astype(str).apply(lambda x: x[:4]).astype(int)
이렇게 하면 년도 4자리만 뜰 줄 알았는데 안되었다... 왜 그런지 나도 궁금하다모델을 여러개 선택하고, 모델별 최적의 하이퍼파라미터를 찾아서 결과를 내려 했으나,
오늘의 시간은 거의 다 쓰게 되어 일단 이번 블로그는 여기서 마친다...