본문 바로가기

Machine Learning71

데이터 분리 : train 데이터와 Validation 데이터 train_test_split() ▶︎ train_test_split 모듈 사용 : 학습 데이터 셋과 test 데이터 셋을 손쉽게 분리할 수 있음 from sklearn.model_selection import train_test_split X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=비율(0~1 사이), random_state=숫자) X : 학습에 사용되는 독립 변수 데이터 (배열이나 데이터프레임) y : 예측하고자 하는 종속 변수 데이터 test_size : 테스트용 데이터 개수를 지정. (1보다 작은 실수를 기재할 경우, 비율을 나타냄) train_size : 학습용 데이터의 개수를 지정. (1보다 작은 실수를 기재할 .. 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.
[Decision Tree] 의사결정나무 모델 의사결정나무(Decision Tree)란? 데이터의 특징에 따라서 분류(Classification) 또는 예측(Regression)을 수행할 수 있는 트리 기반의 모델 의사결정나무는 의사 결정 규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측하는 분석 방법 간단하게 표현하자면, 아래 그림처럼 스무고개 방식으로 정답을 구하는 방식 ⭑ 회귀(Regression) 문제에서 사용되는 의사결정나무인 DecisionTreeRegressor의 경우 : 실제값과 모델의 예측값의 차이(오차)가 최소가 되도록 나무의 가지를 나눈다 의사결정나무 회귀 모델의 특징과 작동 방식 의사결정나무는 독립 변수의 값을 기준으로 데이터를 분할한다 👉 이때 각 분할은 최대한 순수한 상태로 만들기 위해 정보 이득이.. 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.
[DecisionTreeRegressor] 회귀 트리 모델 DecisionTreeRegressor 의사 결정 나무 알고리즘을 기반으로 하며, 회귀 문제를 해결하는 데 사용됨 의사 결정 나무 : 특성들의 조건에 따라 데이터를 분할하여 결정 경계를 형성하는 모델 회귀 트리 모델은 입력 특성에 따라 종속 변수의 값을 예측하기 위해 이러한 결정 경계를 사용 DecisionTreeRegressor 객체를 생성하고 적절한 매개변수를 설정하여 모델을 초기화한 후에는 데이터를 모델에 적합시키고 예측을 수행 사용 예시 from sklearn.tree import DecisionTreeRegressor scikit-learn 라이브러리에서 DecisionTreeRegressor 클래스(class)를 가져오기 model = DecisionTreeRegressor(random_sta.. 2023. 8. 14.
[기초 통계] 분산분석(Analysis of Variance, ANOVA) 분산분석이란? 세 개 이상의 그룹 간의 평균 차이를 비교하고, 이들의 차이가 우연적인 변동에 기인하는지, 진짜 차이에 기인하는지 통계적으로 판단하는 기법 그룹 간의 분산과 그룹 내의 분산을 비교하여 평균 차이의 통계적 유의성을 평가 즉, 주요 목적은 다수 그룹 간에 존재하는 차이를 확인하며, 실제로 그룹 간 차이가 우연적인 것이 아닌지 판단하는 것 언제 사용할까? 1. 세 개 이상의 그룹 간 평균 비교 2. 그룹 간 차이의 통계적 유의성 확인 3. 예를 들어 실험군과 대조군, 다수의 처리 그룹 등 간의 차이를 비교하고자 할 때 ANOVA의 유형 1. 일원배치 분산분석(One-way ANOVA) : 하나의 독립 변수(그룹)에 대해 세 개 이상의 수준을 비교. 하나의 요인을 가진 실험 또는 관찰에 주로 사용.. 2023. 8. 14.
728x90