지도학습
비지도학습
분류(Classification)
군집화(Clustering)
분류 : 가능성 있는 몇몇 후보 중 하나를 선정
전체 데이터셋을 임의로 섞어 약 70%만으로 모델을 만든다. 모델이 30%의 테스트 데이터를 잘 예측하면 일반화 되었다고 함
X_train, X_test, y_train, y_test = train_test_split(data, target)
%matplotlib inline
import matplotlib.pyplot as plt # pyplot 패키지 로딩
train_accuracy = [] # 결과를 받는 빈 리스트
test_accuracy = []
n_neighbors_settings = range(1, 11) # 1~10까지 변경
for n_neighbors in n_neighbors_settings:
clf = KNeighborsClassifier(n_neighbors=n_neighbors) # 객체 생성
clf.fit(X_train, y_train) # 모델 훈련
train_accuracy.append(clf.score(X_train, y_train)) # 훈련 정확도 저장
test_accuracy.append(clf.score(X_test, y_test)) # 테스트 정확도 저장
plt.plot(n_neighbors_settings, train_accuracy, label="Traing Accuracy") # 훈련 정확도
plt.plot(n_neighbors_settings, test_accuracy, label="Test Accuracy") # 테스트 정확도
plt.legend() # 범주
plt.show()
# 데이터 분리
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y)
# k=3로 모델 훈련
from sklearn.neighbors import KNeighborsRegressor
reg = KNeighborsRegressor(n_neighbors = 3)
rig.fit(X_train, y_train)
R sqaure 점수는 회귀 모델이 자료를 얼마나 잘 설명하는 말한다
SST는 기본 차이값(분산) 이고, SSE는 예측의 차이값
Residual(잔차)은 실제 관측값과 모델이 예측한 값의 차이를 의미한다
Residual = 실제값(y) - 예측값(ŷ)
SSE는 이 residual의 제곱합으로, Σ(y - ŷ)² = Σ(residual)²
Residual이 작을수록 모델의 예측이 정확하다는 의미이다
이 그림은 회귀 분석에서 중요한 개념인 SST, SSE, SSR의 관계를 시각적으로 보여주고 있다
왼쪽 그래프: 데이터 포인트(검은 점)와 회귀선(점선)을 보여준다. 각 데이터 포인트에서 회귀선까지의 수직 거리를 빨간색 선으로 표시하고 있으며, 이는 residual을 나타낸다
오른쪽 그래프: 분산 분해 개념을 설명하며 다음을 보여준다:
이 세 값의 관계는 SST = SSR + SSE이며, R-square = SSR/SST = 1 - SSE/SST 이다