지도 학습 : 대체로 predict()
메서드 사용해 예측
비지도 학습 : 대체로 transform()
이나predict()
메서드 사용해 데이터 속성 변환, 추론
# 1. 적절한 estimator 클래스를 임포트해서 모델의 클래스 선택
from sklearn.linear_model import LinearRegression
# 2. 클래스를 원하는 값으로 인스턴스화해서 모델의 하이퍼파라미터 선택
model = LinearRegression(fit_intercept=True)
# 3. 데이터를 특징 배열과 대상 벡터로 배치
X = x[:, np.newaxis]
# 4. 모델 인스턴스의 fit() 메서드를 호출해 모델을 데이터에 적합
model.fit(X, y)
# 5. 모델을 새 데이터에 대해서 적용
xfit = np.linspace(-1, 11)
Xfit = xfit[:, np.newaxis]
yfit = model.predict(Xfit)
model_selection
모듈학습용 데이터와 테스트 데이터로 분리
교차 검증 분할 및 평가
train_test_split()
: 학습/테스트 데이터 세트로 분리
from sklearn.model_selection import train_test_split
# test_size = 분리 비율
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.3)
cross_val_score()
: 교차 검증
from sklearn.model_selection import cross_val_score, cross_validate
# cv= 데이터 분할 방법
scores = cross_val_score(model, data, target, cv=5)
GridSearchCV()
: 교차 검증과 최적 하이퍼 파라미터 찾기
from sklearn.model_selection import GridSearchCV
alpha = [0.001, 0.01, 0.1, 1, 10, 100, 1000]
param_grid = dict(alpha=alpha)
# estimator = 모델 객체
# param_grid = 탐색하려는 하이퍼 파라미터 그리드
# scoring = 모델 성능 평가 지표
# cv = 데이터 분할 방법
gs = GridSearchCV(estimator=Ridge(), param_grid=param_grid, scoring ='accuracy', cv=10)
result = gs.fit(data, target)
StandardScaler
: 표준화 클래스
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
iris_scaled = scaler.fit_transform(iris_df)
MinMaxScaler
: 정규화 클래스
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
iris_scaled = scaler.fit_transform(iris_df)
from sklearn.metrics import confusion_matrix
confmat = confusion_matrix(y_true =y_test, y_pred=predict)
전체 예측 데이터 건수 중 예측 결과가 동일 데이터 건수
from sklearn.metrics import accuracy_score
score = accuracy_score(y_test,predict)
from sklearn.metrics import precision_score, recall_score
precision = precision_score(y_test, predict)
recall = recall_score(y_test, predict)
from sklearn.metrics import f1_score
f1 = f1_score(y_test, predict)