본문 바로가기

멋쟁이사자처럼 AIS7/오늘코드27

[1108] log를 이용한 데이터 전처리, 하이퍼 파라미터 튜닝, Feature Engineering 0601 실습 feature 선별을 위한 EDA의 중요성 day 피처를 삭제해야 하는 이유 ⇒ 데이터셋 분할이 19-20일 기준으로 진행되어 train과 test 데이터셋이 다름 month 피처를 삭제해야 하는 이유 ⇒ 월이 해마다 비슷한 값이 아니라 2배 정도 차이 납니다. 그런데 월을 넣어주면 월은 2배 정도 차이가 있음에도 오해의 소지가 있을 수 있습니다. ⇒ 같은 달인데 값이 차이가 많이 나기 때문에 혼란이 있을 수 있습니다. year-month 피처가 유의미한가? 만약 month와 year을 합쳐서 새로운 피처를 만든다면, RMSLE 자체는 감소하지만 실제 competiton에서는 좋은 결과가 나오지 않는다. cf. ordinal encoding : category type으로 변경 후 ordi.. 2022. 11. 8.
[1107] 피처 선별 등의 머신러닝 접근법과 RMSLE 1. 하이퍼 파라미터 튜닝 (복습) 보통은 RandomizedSearchCV로 범위를 줄인 다음 GridSearchCV로 찾음 1.1. GridSearchCV 지정된 조합만 보기 때문에 해당 그리드를 벗어나는 곳에 좋은 성능을 내는 하이퍼파라미터가 있다면 찾지 못하는 단점이 있습니다. 1.2. RandomizedSearchCV 랜덤한 값을 넣고 하이퍼파라미터를 찾습니다. 처음에는 범위를 넓게 지정하고 그 중에 좋은 성능을 내는 범위를 점점 좁혀가면서 찾습니다. Fitting 5 folds for each of 5 candidates, totalling 25 fits : 5 fold 는 cv 조각 5개를 의미하며 5 candidates 는 n_iter를 의미합니다. 랜덤포레스트 안에 트리의 개수가 100개.. 2022. 11. 7.
[1101]지니 불순도, 엔트로피와 타이타닉 데이터 전처리 타이타닉 데이터 Q. 당뇨병 데이터셋보다 더 난이도가 있는 이유는? A. 전처리할 데이터가 많다(결측치, 다양한 데이터 형식, 더 큰 크기) 데이터 전처리 정규화(Normalization) : 숫자 스케일의 차이가 클 때 값을 정규분포로 만들어 주거나 스케일 값을 변경해 주는 것 이상치(Outliers) : 이상치를 제거하거나 대체 대체(imputation) : 결측치를 다른 값으로 대체 인코딩(encoding) : 호칭, 탑승지의 위치, 문자 데이터를 수치화, 너무 범위가 큰 수치 데이터를 구간화 머신러닝과 데이터 타입 머신러닝 내부에서는 수치 데이터만 연산 가능 => 중요 feature의 경우 수치 데이터로 변환 필요 binary encoding : bool 값 등으로 변환 해주는 것(머신러닝 알고리.. 2022. 11. 1.
[1031] 분류와 회귀의 평가 지표와 하이퍼 파라미터 튜닝 회귀(regression)의 평가 지표(측정 공식) 회귀 알고리즘부터는 정확도가 아닌 오차값을 측정하여 모델의 성능을 평가함 => R2 Score는 클수록(1에 가까울수록) 모델이 좋은 성능을 보이며, MAE, MAPE, MSE, RMSE는 작을수록(0에 가까울수록) 좋다 MAE Mean Absolute Error, 평균 절대 오차 예측값과 실제값의 차이에 대한 절대값의 평균 오차의 산포도를 양수, 음수 동일하게 비교하기 위해서 절댓값을 씌움 abs(y_train - y_predict).mean() MAPE Mena Ablsoute Percentage Error (실제값 - 예측값 / 실제값)의 절대값에 대한 평균 abs((y_train - y_predict)/y_train).mean() MSE Mean.. 2022. 10. 31.
[1026] Feature Engineering & K-fold Cross Validation intro 지난 수업(과제) 복습 결측치를 처리하고 중요도를 시각화했을 때, insulin 의 중요도가 제일 크게 나옴 => 개인이 설정한 하이퍼 파라미터에 따라 중요도는 상이 정확도(스코어)가 높으면 성능이 좋다고 할 수 있으나, 데이터마다 상이 Feature Enginering 결측치 처리 IQR : raw data에 가까운 Insulin_nan을 기준으로 진행(Insulin_fill은 조작된 값)IQR = desc[&#39;75%&#39;] - desc[&#39;25%&#39;] max_out = desc[&#39;75%&#39;] + (IQR * 1.5) df[df["Insulin_fill"] < max_out] IQR = df[&#39;Insulin_nan&#39;].quantile(0.75) .. 2022. 10. 26.