2023-06-12 수업내용
1. 손글씨 데이터셋 살펴보기
불러오기
from sklearn.datasets import load_digits
* 공식 문서 참조
digits = load_digits()
digits.key()
data = digits['data']
data.shape
data[0]
- sklearn의 dataset에서 digits(손글씨 데이터셋)을 불러옴
- digits의 객체를 생성하고
- digits의 key 값 중 data를 확인함
불러오기
import matplotlib.pyplot as plt
fig, axes = plt.subplots(2, 5, figsize = (14, 8))
for i, ax in enumerate(axes.flatten()):
ax.imshow(data[i].reshape((8, 8)), cmap ='gray')
ax.set_title(target[i])
- matplotlib의 subplot 을 이용하여 2행 5열로 구성된 subplot을 만듬
- figsize를 이용하여 size는 (14, 8)로 생성
- axes 배열을 flatten을 이용하여 평탄화 함
- data 배열의 i번째 원소를 8x8 크기로 하고 gray로 표시
- 제목은 target의 i번째로 함
2. 정규화
- 네이버 평점 1 ~ 10
- 넷플릭스 평점 1 ~ 5 와 같이 스케일이 다를때 사용함
data[0]
불러오기
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled = scaler.fit_transform(data)
scaled[0]
- sacler의 객체를 생성
- data를 넣어 스케일 조정을 함
- 이때 스케일 조정은 크기에 맞게 0 ~ 1 까지의 실수로 조절됨
불러오기
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(scaled,
target,
test_size = 0.2,
random_state = 15)
print(X_train.shape, y_train.shape)
print(X_test.shape, y_test.shape)
3. Support Vector Machine(SVM)
- 두 클래스로부터 최대한 멀리 떨어져 있는 결정경꼐를 찾는 분류기로 특정 조건을 만족하는 동시에 클래스를 분류하는 것을 목표로 함
불러오기
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
model = SVC()
model.fit(X_train, y_train)
pred = model.predict(X_test)
pred
accuracy_score(y_test, pred)
print(y_test[0], pred[0])
plt.imshow(X_test[0].reshape(8,8))
plt.show()
- 예측 : 9, 정답 : 9
fig, axes = plt.subplots(2, 5, figsize = (14, 8))
for i, ax in enumerate(axes.flatten()):
ax.imshow(X_test[i].reshape(8,8), cmap = 'gray', interpolation='bicubic')
ax.set_title(f'Label : {y_test[i]}, pred : {pred[i]}')
- interpolation='bicubic' 을 이용하여 이미즈를 부드럽게 표시
- 픽셀 사이의 값을 더 정교하게 추정하여 자연스러운 이미지를 얻을 수 있음
'머신러닝&딥러닝' 카테고리의 다른 글
머신러닝&딥러닝 (7) - LightGBM (0) | 2023.06.15 |
---|---|
머신러닝 & 딥러닝 (6) - 랜덤 포레스트 (0) | 2023.06.14 |
머신러닝&딥러닝 (4) - 로지스틱 회귀 (2) | 2023.06.12 |
머신러닝&딥러닝 (3) - 의사결정나무 (0) | 2023.06.12 |
머신러닝&딥러닝 (2) - 선형회귀 (0) | 2023.06.09 |