@혼자공부하는 머신러닝 딥러닝 |
혼자공부하는 머신러닝 딥러닝 3주차 후기 및 미션 완료
@혼자공부하는 머신러닝 딥러닝 |
3주차 학습을 하면서 실습을 위해서 데이터 전처리를 하는 부분은 반복하기 때문에,
어느정도 눈에 들어오기는 하는데, 동영상 강의와 함께 교재를 참고하는데도 쉽지는 않네요.
아직까지 응용은 하지 못하고 있는데, 좀더 반복해서 응용도 해보겠습니다.
- 챕터 4 : 다양한 분류 알고리즘
이번 주에는 로지스틱 회귀와 경사 하강법 이렇게 크게 2가지에 대해서 학습을 했는데요,
로지스틱 회귀는 회귀를 사용하여 데이터가 어떤 범주에 속할 확률을 0에서 1사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류해주는 알고리즘 이고, 확률적 경사 하강법은 대표적인 점진적 학습 알고리즘으로 훈련세트에서 샘플 하나씩 꺼내 손실 함수의 경사를 따라 최적의 모델을 찾는 알고리즘입니다. 여러개씩 꺼내서 수행하는 방법은 미니 배치 경사 하강법이라고 하고, 몽땅 꺼내서 수행하는 경우는 배치 경사 하강법이라고 합니다.
- 기본 미션 : Ch.04(04-1) 2번 문제 풀고, 풀이 과정 설명하기
2. 로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요?
정답 : 1 시그모이드 함수
* 시그모이드 함수와 로지스틱 함수는 같다고 생각하면 되고, 0~1 사이의 범위를 벗어날수 없습니다.
- 선택 미션 : Ch.04(04-2) 과대적합/과소적합 손코딩 코랩화면 캡처하기
import pandas as pd
fish = pd.read_csv('https://bit.ly/fish_csv_data')
fish_input = fish[['Weight', 'Length', 'Diagonal', 'Height', 'Width']].to_numpy()
fish_target = fish['Species'].to_numpy()
from sklearn.model_selection import train_test_split
train_input, test_input, train_target, test_target = train_test_split(fish_input, fish_target, random_state=42)
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
ss.fit(train_input)
train_scaled = ss.transform(train_input)
test_scaled = ss.transform(test_input)
from sklearn.linear_model import SGDClassifier
import numpy as np
sc = SGDClassifier(loss='log', random_state=42)
train_score = []
test_score = []
classes = np.unique(train_target)
for _ in range(0, 300):
sc.partial_fit(train_scaled, train_target, classes=classes)
train_score.append(sc.score(train_scaled, train_target))
test_score.append(sc.score(test_scaled, test_target))
import matplotlib.pyplot as plt
plt.plot(train_score)
plt.plot(test_score)
plt.xlabel('epoch')
plt.ylabel('accuracy')
plt.show()
sc = SGDClassifier(loss='log', max_iter=100, tol=None, random_state=42)
sc.fit(train_scaled, train_target)
print(sc.score(train_scaled, train_target))
print(sc.score(test_scaled, test_target))
0.957983193277311
0.925
#혼공학습단 #혼공 #혼공머신 #로지스틱회귀 #확률적경사하강법 #과대적합 #과소적합
0 댓글