ML Insights 22

선형 관계 vs 선형 종속 — 뭐가 다를까?

머신러닝이나 통계, 선형대수 공부를 하다 보면 종종 마주치는 두 개념이 있습니다.선형 관계 (linear relationship)선형 종속 (linear dependence)이 둘은 비슷해 보이지만 의미도 다르고, 사용하는 맥락도 다릅니다.이번 글에서는 그 차이를 쉽고 명확하게 정리해보겠습니다.  선형 관계 (Linear Relationship) 한 변수가 변할 때, 다른 변수가 일정한 비율로 함께 변하는 관계예시:공부 시간 ↑ → 점수 ↑ 몸무게 ↑ → 혈압 ↑이런 관계는 우리가 통계에서 말하는 상관관계 혹은 회귀 관계에 해당합니다.수식 예시:y=ax+by a > 0: x가 증가하면 y도 증가 (양의 선형 관계)a 👉 우리가 흔히 말하는 "증가하면 증가, 감소하면 감소"는 이 선형 관계를 말합니다...

로지스틱 회귀 + 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 등 모든 숫자형 컬럼을 선택함..

Lasso와 ElasticNet: 회귀계수 축소의 정교한 전략

모델에 너무 많은 변수가 포함되면 과적합, 해석 어려움, 계산 부담 등 다양한 문제가 생깁니다. 이런 문제를 해결하기 위해 Ridge 회귀 외에도 Lasso와 ElasticNet 같은 정규화 기법이 자주 사용됩니다.이번 글에서는 특히 Lasso 회귀와 ElasticNet 회귀의 차이와 특징을 간단히 정리해봅니다. Lasso 회귀란?Lasso (Least Absolute Shrinkage and Selection Operator) 회귀는Ridge 회귀처럼 계수를 축소하지만, 계수를 완전히 0으로 만들 수 있다는 점이 가장 큰 특징입니다. 특징입력 변수 중 영향이 적은 변수는 완전히 제거해버립니다.따라서 변수 선택(Feature Selection) 역할을 동시에 수행합니다.계수에 대한 제약조건으로 L1 노름..

Ridge 회귀: 다중공선성을 해결하는 정규화 회귀

Ridge 회귀는 선형 회귀의 문제 중 하나인 다중공선성(Multicollinearity)을 해결하기 위한 정규화 기법입니다. 특히 X(입력 변수) 간의 상관관계가 높을 때, 모델이 불안정해지는 문제를 완화해줍니다. Ridge 회귀의 핵심 아이디어Ridge는 기존의 손실 함수(SSE)에 회귀계수의 크기를 패널티로 추가합니다.손실 함수 = 예측 오차 제곱합 + λ * (회귀계수 제곱합)λ(lambda)는 튜닝 파라미터로, 클수록 회귀계수들을 더 많이 축소합니다.목적은 불필요하게 큰 회귀계수들을 줄여 모델을 단순화하는 것에 있습니다. 왜 계수를 줄일까? 영향 없는 변수 억제중요한 변수는 계수가 커서 줄이더라도 영향이 남지만,중요하지 않은 변수는 계수가 거의 0에 가까워지며 무시됩니다. 과적합 방지모델 복잡도..

회귀계수 축소법: 모델의 성능과 해석력을 높이는 방법

머신러닝이나 통계 모델링을 할 때, 너무 많은 변수는 오히려 독이 될 수 있습니다. 회귀계수 축소법은 불필요한 변수는 제거하고 중요한 변수만 남겨 모델을 더 간결하고 예측력 있게 만드는 기법입니다. 이 글에서는 회귀계수 축소의 개념, 이유, 좋은 변수의 조건, 그리고 대표적인 방법들까지 정리해봅니다. 회귀분석에서의 이상적인 데이터 조건독립변수 X끼리는 상관관계가 작아야 이상적입니다. (Multicollinearity 최소화)반면, 독립변수 X와 종속변수 Y 간에는 강한 상관관계가 있어야 합니다.즉, 적은 수의 독립변수로도 Y를 잘 설명할 수 있어야 이상적입니다.데이터가 많다고 무조건 좋은 것은 아닙니다. "Long and Thin" 구조보다는, 필요한 변수만 모은 "Short and Fat" 구조가 더 ..

로지스틱 회귀분석

이 글에서는 분류 문제에 자주 사용되는 **로지스틱 회귀 분석(Logistic Regression)**에 대해 이해하기 쉽게 설명합니다. 단순한 수식이 아닌, 왜 사용하는지 그리고 어떻게 작동하는지 중심으로 정리했습니다. 로지스틱 회귀란?**출력 변수가 범주형(Binary)**일 때 사용하는 회귀 기법입니다.예: 성공/실패, 예/아니오, 정상/불량 등 두 가지로 나뉘는 결과 예측단순 선형회귀처럼 출력값을 직접 예측하지 않고, 성공 확률 ppp을 예측합니다.p=P(success∣X1,X2,...,Xk)즉, 다수의 입력 변수 X1∼Xk로부터 성공 확률을 예측하는 모델입니다. 왜 일반 선형 회귀는 안될까?선형 회귀를 그대로 적용하면 다음과 같은 형태가 됩니다. p(X)=β0+β1X1+⋯+βkXk+ϵ 하지만 이..

랜덤포레스트 회귀는 "회귀" 모델일까?

회귀분석을 공부하다 보면 이런 의문이 생길 수 있어요.“회귀는 X와 Y의 관계식을 찾는 거 아닌가요?그런데 랜덤포레스트도 회귀라고 부르네요?그럼 얘도 수식 기반 회귀모델인 건가요?” 오늘은 이 헷갈리는 부분을 깔끔하게 정리해보겠습니다!  회귀란 두 가지 의미가 있어요 랜덤포레스트 회귀는 어떤 경우?랜덤포레스트는 트리 기반의 비선형 모델입니다.수식이나 계수(β)를 추정하지 않아요.대신, 데이터를 규칙적으로 분할해서 예측값을 만들어냅니다.즉,✅ 회귀 문제를 푸는 머신러닝 모델이지만❌ 전통적인 수식 기반 회귀모델은 아니다 요약랜덤포레스트 회귀는 ‘회귀 문제’를 푸는 모델일 뿐,‘회귀모델’ 자체는 아니다.  정리회귀문제라고 해서 반드시 전통적인 회귀모델만 써야 하는 건 아닙니다.데이터의 구조, 예측 목적, 해석..

다항 회귀분석

선형회귀는 직선으로 데이터를 설명하지만,현실에서는 선형으로 설명되지 않는 비선형 관계도 많습니다.예를 들어, 공부 시간과 성적의 관계가 꼭 직선일까요?→ 아닐 수 있습니다. 너무 많이 공부하면 오히려 점수가 떨어질 수도 있죠.이처럼 비선형적인 데이터를 설명할 수 있도록 확장된 회귀 기법이바로 **다항회귀분석(Polynomial Regression)**입니다. 다항회귀란?기존의 선형회귀에 독립변수의 제곱, 세제곱 같은 고차항을 추가한 회귀모델기본 형태:선형회귀:Y^=β0+β1X1​다항회귀 (예: 2차항 포함):Y^=β0+β1X1+β2X1^2​즉, X는 여전히 하나지만, X의 제곱값을 새 변수처럼 다루는 것이에요. 언제 다항회귀를 써야 할까?1. 독립변수와 종속변수의 관계가 비선형일 때X와 Y 사이의 관계가..