-
KT AIVLE School DX트랙 5주차-머신러닝KT_Aivle_School/Python 2024. 4. 19. 21:08
1. 선형회귀(Linear Regression)
선형회귀는 종속 변수와 하나 이상의 독립 변수 사이의 선형 관계를 모델링하는 데 사용됩니다.
import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression # 데이터 로드 data = pd.read_csv('airquality_simple.csv') # 데이터 분할 (독립변수 X와 종속변수 y) X = data.drop('TargetColumn', axis=1) # TargetColumn은 예측하고자 하는 대상 컬럼명 y = data['TargetColumn'] # 훈련 세트와 테스트 세트 분할 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 선형회귀 모델 생성 및 훈련 model = LinearRegression() model.fit(X_train, y_train) # 예측 및 평가 predictions = model.predict(X_test)
2. KNN(K-Nearest Neighbors)
KNN은 분류나 회귀에 사용될 수 있으며, 가장 가까운 K개의 이웃 데이터를 보고 다수결 또는 평균으로 결과를 예측합니다.
from sklearn.neighbors import KNeighborsClassifier # KNN 모델 생성 및 훈련 model = KNeighborsClassifier(n_neighbors=3) model.fit(X_train, y_train) # 예측 및 평가 predictions = model.predict(X_test)
3. 결정트리(Decision Tree)
결정트리는 분류와 회귀 문제에 사용되며, 데이터를 여러 조건에 따라 나누어 예측을 수행합니다.
from sklearn.tree import DecisionTreeClassifier # 결정트리 모델 생성 및 훈련 model = DecisionTreeClassifier(random_state=42) model.fit(X_train, y_train) # 예측 및 평가 predictions = model.predict(X_test)
4. 로지스틱회귀(Logistic Regression)
로지스틱 회귀는 분류 문제, 특히 이진 분류 문제에 사용됩니다.
from sklearn.linear_model import LogisticRegression # 로지스틱 회귀 모델 생성 및 훈련 model = LogisticRegression() model.fit(X_train, y_train) # 예측 및 평가 predictions = model.predict(X_test)
5. 분할 교차 검증(Split Cross-Validation)
데이터를 여러 부분으로 나누어, 일부는 훈련에 일부는 검증에 사용하여 모델의 성능을 평가합니다.
from sklearn.model_selection import cross_val_score # 선형회귀 모델에 대한 교차 검증 scores = cross_val_score(LinearRegression(), X, y, cv=5)
###6. Random Search
Random Search는 주어진 하이퍼파라미터의 범위 내에서 무작위로 조합을 선택하여 모델을 평가하는 방법입니다. 이 방법은 대규모 하이퍼파라미터 공간에서 빠르게 좋은 결과를 찾는 데 유용할 수 있습니다.
from sklearn.model_selection import RandomizedSearchCV from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import make_classification import pandas as pd # 데이터 로드 data = pd.read_csv('airquality_simple.csv') X = data.drop('Target', axis=1) # 예측 변수 y = data['Target'] # 타겟 변수 # 랜덤 포레스트 분류기 생성 rf = RandomForestClassifier() # 하이퍼파라미터의 분포 정의 param_dist = { 'n_estimators': [100, 200, 300, 400, 500], 'max_depth': [3, 5, 10, None], 'min_samples_split': [2, 5, 10], 'min_samples_leaf': [1, 2, 4], 'bootstrap': [True, False] } # Random Search 실행 random_search = RandomizedSearchCV(rf, param_distributions=param_dist, n_iter=10, cv=5) random_search.fit(X, y) print("최적 하이퍼파라미터:", random_search.best_params_)
###7. Grid Search
Grid Search는 지정된 하이퍼파라미터의 모든 조합에 대해 모델을 평가하여 최적의 조합을 찾는 방법입니다. 이 방법은 하이퍼파라미터의 수가 적을 때 유용합니다.
from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC # SVM 분류기 생성 svc = SVC() # 하이퍼파라미터의 그리드 정의 param_grid = { 'C': [0.1, 1, 10], 'gamma': [1, 0.1, 0.01], 'kernel': ['rbf', 'linear'] } # Grid Search 실행 grid_search = GridSearchCV(svc, param_grid, cv=5) grid_search.fit(X, y) print("최적 하이퍼파라미터:", grid_search.best_params_)
###8. 앙상블
앙상블 기법은 여러 개의 학습 알고리즘을 결합하여 더 좋은 예측 성능을 얻는 방법입니다. 여기서는 랜덤 포레스트 앙상블 기법을 사용합니다.
from sklearn.ensemble import RandomForestClassifier # 랜덤 포레스트 분류기 생성 및 학습 rf = RandomForestClassifier(n_estimators=100, max_depth=3) rf.fit(X, y) # 예측 predictions = rf.predict(X) # 성능 평가 예시 from sklearn.metrics import accuracy_score print("정확도:", accuracy_score(y, predictions))
'KT_Aivle_School > Python' 카테고리의 다른 글
KT AIVLE School DX트랙 7주차-딥러닝 (0) 2024.04.19 KT AIVLE School DX트랙 6주차-머신러닝(비지도) (0) 2024.04.19 KT AIVLE School DX트랙 5주차-데이터 분석표현 (1) 2024.04.19 KT AIVLE School DX트랙 4주차-웹크롤링 (0) 2024.03.24 KT AIVLE School DX트랙 3주차-시계열 데이터 (1) 2024.03.24