[혼공머신]2-1
[혼공머신]2-1
### 1. 지도 학습과 비지도 학습 #### 지도 학습 (Supervised Learning)
- 정의: 입력 데이터와 해당 타깃(라벨) 데이터를 사용하여 모델을 훈련한 후, 새로운 입력 데이터에 대한 예측을 수행합니다.
- 예시: K-최근접 이웃 알고리즘 (K-Nearest Neighbors)
- 입력 데이터와 그에 따른 레이블(타깃)을 사용하여 새로운 데이터의 레이블을 예측합니다.
from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=3) knn.fit(train_input, train_target) prediction = knn.predict(test_input) score = knn.score(test_input, test_target)
- 입력 데이터와 그에 따른 레이블(타깃)을 사용하여 새로운 데이터의 레이블을 예측합니다.
#### 비지도 학습 (Unsupervised Learning)
- 정의: 타깃 데이터가 없으며, 예측보다는 데이터의 구조나 패턴을 찾는 데 중점을 둡니다.
- 예시: 클러스터링 알고리즘 (K-Means Clustering)
- 데이터를 몇 개의 그룹으로 묶는 작업을 수행합니다.
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3) kmeans.fit(data) labels = kmeans.labels_
- 데이터를 몇 개의 그룹으로 묶는 작업을 수행합니다.
### 2. 데이터 분할 #### 훈련 세트 (Training Set)
- 정의: 모델을 훈련하는 데 사용하는 데이터입니다. 일반적으로 전체 데이터의 70-80%를 차지합니다.
- 중요성: 훈련 세트가 클수록 모델이 더 잘 학습할 수 있습니다.
- 코드 예시:
from sklearn.model_selection import train_test_split train_input, test_input, train_target, test_target = train_test_split(data, target, test_size=0.2)
#### 테스트 세트 (Test Set)
- 정의: 모델을 평가하는 데 사용하는 데이터입니다. 전체 데이터의 20-30%를 차지합니다.
- 중요성: 모델의 일반화 성능을 평가하는 데 사용됩니다.
- 코드 예시:
from sklearn.model_selection import train_test_split train_input, test_input, train_target, test_target = train_test_split(data, target, test_size=0.2)
### 3. 핵심 패키지와 함수 #### NumPy
- seed()
- 정의: 난수 생성을 위한 초깃값을 지정하여 동일한 난수를 재현할 수 있게 합니다.
- 사용 예:
import numpy as np np.random.seed(42)
- arange()
- 정의: 일정한 간격의 숫자 배열을 생성합니다.
- 사용 예:
import numpy as np array = np.arange(0, 10, 1)
- shuffle()
- 정의: 주어진 배열을 랜덤하게 섞습니다.
- 사용 예:
import numpy as np array = np.arange(10) np.random.shuffle(array)
### 4. 실습 코드 예시 #### 데이터 분할 및 모델 훈련
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
# 데이터 생성
data = np.array([[1, 2], [2, 3], [3, 4], [5, 6], [8, 9], [9, 10]])
target = np.array([0, 0, 0, 1, 1, 1])
# 데이터 분할
train_input, test_input, train_target, test_target = train_test_split(data, target, test_size=0.2)
# 모델 훈련
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(train_input, train_target)
# 예측 및 평가
prediction = knn.predict(test_input)
score = knn.score(test_input, test_target)
print("Prediction:", prediction)
print("Accuracy:", score)
댓글남기기