ML Insights/Build ML From Scratch 3

로지스틱 회귀 + L1 규제로 중요한 변수만 골라내기!

머신러닝에서 모델 성능도 중요하지만, 어떤 변수가 중요한지 해석할 수 있는 능력도 매우 중요하다.특히 금융, 의료처럼 설명력이 필요한 분야에선 더욱 그렇다.이번 글에선 로지스틱 회귀 + L1(Lasso) 규제를 활용해서 유의미한 변수만 선택하는 과정을 소개한다. 목표select_features_by_logistic_lasso(df, '채무 불이행 여부') -> 이 함수는 데이터프레임 df에서 채무 불이행 여부를 타겟으로,중요한 변수만 골라내고 학습된 로지스틱 회귀 모델까지 반환한다! 주요 단계 설명파이프라인 구성clf = Pipeline(steps=[ ('preprocessor', preprocessor), ('classifier', LogisticRegression( penalt..

ColumnTransformer로 수치형 + 범주형 전처리를 한 방에

머신러닝 모델에 데이터를 넣기 전에 꼭 해야 할 일, 바로 전처리.그런데 수치형은 스케일링, 범주형은 인코딩처럼 각기 다른 처리 방식이 필요하지.이럴 때 유용한 도구가 바로 sklearn.compose.ColumnTransformer!\  코드 설명from sklearn.compose import ColumnTransformerfrom sklearn.preprocessing import StandardScaler, OneHotEncoderpreprocessor = ColumnTransformer( transformers=[ ('num', StandardScaler(), numeric_cols), ('cat', OneHotEncoder(drop='first', handle_u..

np.number는 왜 쓸까? 숫자형 컬럼만 뽑아내는 코드 해석

데이터 전처리 작업 중 자주 마주치는 코드가 있다:numeric_cols = X.select_dtypes(include=[np.number]).columns.tolist() 처음 보면 "np.number는 뭘까?", "왜 저걸 include에 넣지?" 하는 의문이 들 수 있어.한 줄씩 해석하면서 알아보자. 코드 해석 X.select_dtypes(include=[np.number])X는 보통 pandas DataFrame이다.select_dtypes()는 DataFrame에서 특정 데이터 타입을 가진 컬럼만 선택할 수 있는 메서드.include=[np.number]는 NumPy에서 정의된 숫자형 타입들을 의미한다.즉, int, float, np.int64, np.float32 등 모든 숫자형 컬럼을 선택함..