본문 바로가기

Machine Learning/scikit-learn24

[교차 검증] K-폴드 교차 검증 교차 검증 교차검증은 여러 세트로 구성된 학습 데이터 세트와 검증 데이터 세트에서 학습과 평가를 수행하는 것이다. 각 세트에서 수행한 평가 결과에 따라 하이퍼 파라미터 튜닝 등의 모델 최적화를 더욱 손쉽게 할 수 있다. 대부분의 ML 모델의 성능 평가는 (1)교차 검증 기반의 1차 평가 후, (2)테스트 데이터 세트에 적용해 평가하는 프로세스이다. 교차 검증을 통해 과적합 문제도 개선할 수 있다. K-폴드 교차 검증 가장 보편적으로 사용되는 교차 검증 기법 K개의 데이터 폴드 세트를 만들어서, K번만큼 각 폴드 세트에 학습과 검증 평가를 반복적으로 수행하는 방법 위 예시 이미지에서는 5번의 교차 검증 결과를 평균한 결과로 예측을 수행하게 된다. 📑 예제 1. 5개의 폴드 세트로 iris 데이터 분리 kf.. 2023. 8. 17.
[데이터 전처리] MinMaxScaler를 이용한 데이터 정규화 예제 스케일링이란? 머신러닝 과정에서는 데이터의 특성(feature)을 추출하여 모델을 학습시킨다. 그러나 데이터 값이나 분산이 너무 크거나 작으면 모델의 학습에 부정적인 영향을 미칠 수 있다. 이를 방지하기 위해 '스케일링' 과정을 통해 데이터 값을 조정하고 분산을 줄이게 된다. min-max 정규화 min-max 정규화 는 수치형 데이터 값을 0과 1 사이의 값으로 변환해주는 스케일링 방법 중 하나이다 정규화를 위한 수식은 다음과 같다 X' = (X - MIN) / (MAX - MIN) X : 원본 데이터 값 X' : 정규화가 완료된 데이터 값 MIN : 최솟값 MAX : 최댓값 sklearn 라이브러리(Library)의 MinMaxScaler 사용법 👉 sklearn 라이브러리(Library)의 MinM.. 2023. 8. 17.
[하이퍼 파라미터] hyper parameter란? 하이퍼 파라미터란? 모델링할 때 사용자가 직접 세팅해주는 값 머신러닝 모델을 쓸 때 사용자가 직접 세팅해야하는 값이 많다 ▶︎ 그 모든 값을 하이퍼 파라미터라 한다 하이퍼 파라미터는 정해진 최적의 값이 존재하지 않으며, 하이퍼 파라미터 설정에 따라 성능 변화에 큰 차이를 보이기도 한다 하이퍼 파라미터를 조정함으로써 모델 성능을 향상 시킬 수 있다. 또한, 모델의 복잡도를 제어하여 과적합을 방지하는 등의 이점을 가지고 있다. 사이킷런 RandomForestRegressor의 하이퍼 파라미터 예시 n_estimators : 결정트리의 개수(default = 10) criterion : 분할된 것(split)의 품질을 측정하는 기능 예시 : absolute_error max_depth : 트리의 최대 깊이 m.. 2023. 8. 17.
[회귀] LinearRegression (선형 회귀 모델) & 회귀 평가 지표 LinearRegression 모델 ▶︎ 선형 회귀란? 예측하고자 하는 종속변수 y와 독립변수 x의 관계를 가장 잘 나타내는 선(line)을 구하는 회귀 분석 방법 즉, 선형회귀모델은 '회귀계수(regression coefficient)를 선형 결합으로 표현할 수 있는 모델 주로 수치 예측 문제에 사용됨 선형모델은 파라미터가 선형식으로 표현하기 때문에 유연성이 떨어짐 하지만, 파라미터를 추정하거나 모델을 해석할 때 비선형 모델에 비해 유리하다는 특징이 있음 위 그래프에서 빨간 선(Linear regression)은 파란색 점들로 표현된 x와 y의 관계를 잘 나타낸다. 이처럼 선형회귀분석을 통해 두 변수의 관계를 확인할 수 있다. ▶︎ 사이킷런 linear_model 모듈 사이킷런의 linear_model.. 2023. 8. 15.
[앙상블] RandomForestRegressor(랜덤포레스트) RandomForestRegressor 수많은 의사결정나무를 모아 숲을 구성하는 '랜덤 포레스트' (각각의 의사결정나무의 특징들을 무작위로 선정하기에 '랜덤' 이 붙음) 앙상블 학습 기반의 회귀 모델로, 여러 개의 결정 트리(Decision Tree)를 사용하여 예측을 수행하는 모델 앙상블 학습은 여러 개의 모델을 조합하여 더 강력하고 안정적인 예측 모델을 만드는 기법이다 👉 더 높은 예측 성능 & 일반화 능력 랜덤 포레스트는 배깅(Bagging)이라는 앙상블 방법을 기반으로 한다 🔍 배깅이란? - 훈련 데이터를 임의로 추출하여 복원 추출을 통해 부분집합을 생성하고, - 각각의 부분집합에서 독립적으로 모델을 학습시킴 - 이때, 복원추출방법은 중복을 허용하기 때문에 단일 데이터가 여러번 선택될 수도 있다 .. 2023. 8. 14.
[데이터 분할] 학습 세트와 검증 세트 분할 : train_test_split() ✅ scikit-learn의 train_test_split() 함수를 사용하여 데이터를 학습 세트와 검증 세트로 분할 train_test_split() 함수는 데이터를 학습에 사용할 부분과 모델을 평가하는 데 사용할 부분으로 분할하기 위해 사용 데이터의 일부를 검증 세트로 분리하여 학습한 모델의 성능을 평가함으로써, 과적합을 방지하고 일반화 성능을 확인 ✅ 사용법 1. sklearn.model_selection 모듈에서 train_test_split 을 로드 2. train_test_split() 함수를 호출하여 train_x, train_y 데이터를 x_train, x_valid, y_train, y_valid로 분할 from sklearn.model_selection import train_test_.. 2023. 8. 14.
728x90