data를 불러왔는데 범주형이 검색이 안되는 상황이 발생했다. train.loc[train['Hispanic_Origin'] == 'Do not know', 'Hispanic_Origin'] = ' NA'test.loc[test['Hispanic_Origin'] == 'Do not know', 'Hispanic_Origin'] = ' NA' 이럴때는 .unique()를 써보면, 해당 이름이 어떻게 써져 있는지를 명확히 볼 수 있다.train['Hispanic_Origin'].unique()array([' All other', ' Cuban', ' Mexican (Mexicano)', ' Central or South American', ' Puerto Rican', ' Mexican-Amer..
ML 모델을 고를 때 중요한 것 알고리즘의 개념 알고리즘의 전체 조건 성능에 영향을 미치는 요소 svm : 마진을 최대화 하는 초평면을 찾는다. 가장 큰 도로 만들기 데이터를 커널변환 한다. svm은 데이터가 적을 때 성능 발휘. 요즘엔 응용 알고리즘들이 많다. 나이브 베이즈 : 특징들이 서로 독립적이라는 "나이브(Naive)"한 가정 딥러닝 dense input_shape = (nfeatures,) input_shape에 들어가는 건 분석 단위여야 한다. r2 score의 마이너스 값이 나오는 건 실제값과 평균 추세선, 그리고 모델 오차가 더 커진 곳이 많아서 그렇다. 평균보다 못한 모델이라고 해석은 아지만, 꼭 그렇지만도 않다. 모델에 따라 다르다. 히든 레이어의 의미 실제 hidden layer의 ..
train.columns # 로지스틱 회귀분석 p-value를 넣을 리스트 선언 result_total = [] train['Result_v1'].unique() train['Result_v1'] = train['Result_v1'].astype('category') 먼저 가설을 세운다. 귀무가설 : 각 feature는 target(Result_v1)에 영향을 주지 않는다. 대립가설 : 각 feature는 target(Result_v1)에 영향을 준다. # url_num_hyphens_dom model = sm.Logit(train['Result_v1'], train['url_num_hyphens_dom']) result = model.fit() result_total.append(result.pvalu..
from catboost import CatBoostRegressor from hyperopt import fmin, tpe, hp, STATUS_OK, Trials from sklearn.model_selection import cross_val_score # 하이퍼파라미터 검색 공간 정의 space = { 'depth': hp.quniform('depth', 3, 16, 1), 'learning_rate': hp.loguniform('learning_rate', -5, -0.5), 'l2_leaf_reg': hp.loguniform('l2_leaf_reg', -16, -1), 'max_bin': hp.quniform('max_bin', 16, 512, 1), 'one_hot_max_size': hp...

비즈니스 해석에 대한 중요한 글을 찾아 더 디벨롭해서 정리해보고자 한다. 아마 이번 기수에서는 배우지 않을 것 같아 쓴다. 모델을 만드는 데 있어 항상 필요한 두 가지의 질문. 1. 모델이 왜 그렇게 예측했는가? 2. 그 모델이 정말로 비즈니스 문제를 해결 할 수 있는가? 위의 두 문제에 대한 걸 알아보자. interpretability(해석 가능성) 과 Explainability(설명 가능성) 왜 모델이 그렇게 예측했는지에 대한 문제 본질적으로 해석 가능한 모델 -> whitebox model 즉, 시각화가 가능하거나(Decision Tree 기반) coef 도출이 가능한 선형 회귀 문제 등이다. Output을 본질적으로 해석할 수 없다면(딥러닝) Blackbox model이 된다. Explainabl..
항상 강조하지만, 기본적으로 CRISP-DM이 깔고 들어가야 한다. 모델 튜닝을 해서, 성능을 올려서, 프로젝트의 시작과 끝에서 진짜로 비즈니스 문제가 해결되었는가? 이걸 보아야 한다. 그게 실제 성과 지표다. 성능 1%를 올리는 게 비즈니스 문제 해결에 의미가 없다면, 그저 헛고생이 된다. 머신러닝에서 모든 셀은 값이 되어야 하고, -> Nan 처리(삭제, 채우기) 그 값은 모두 숫자여야 한다. -> 가변수화(범주-> 수치형으로) 값의 범위가 일치해야 한다. -> 스케일링(minmax,robust) 이건 딥러닝도 크게 다르지 않다. knn과 svm은 svm은 요즘에 딥러닝과 접목해서 핫하다. 커널 변형을 시킨다. 딥러닝은 기본적으로 스케일링을 요구한다. shape의 복습 정형 데이터에서 행은 내가 다루..