5강 - 정교한 결과 도출을 위한 데이터 전처리 알아보기
2021. 6. 17. 20:23ㆍICT 멘토링/혼자 공부하는 머신러닝+딥러닝
5강 - 정교한 결과 도출을 위한 데이터 전처리 알아보기

지난 시간에

나는 누구인가?

넘파이로 데이터 준비
fish_data = np.column_stack((fish_length, fish_weight))
fist_target = np.concatenate((np.ones(35), np.zeros(14))
넘파이를 통해서 간단히 데이터 준비 가능!

사이킷런으로 데이터 나누기
데이터 분류 작업은 사이킷런으로!
훈련 세트와 테스트 세트 분류
stratify - 분류 문제에서 타겟값이 골고루 섞이도록 함.

수상한 도미
from sklearn.neighbors import KNeighborsClassifier
kn = KNeighborsClassifier()
kn.fit(train_input, train_target)
kn.score(test_input, test_target)
print(kn.predict([[25, 150]]))
distances, indexes = kn.kneighbors([[25, 150]])
plt.scatter(train_input[:,0], train_input[:,1])
plt.scatter(25, 150, marker='^')
plt.scatter(train_input[indexes,0], train_input[indexes, 1], marker='D')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()

기준을 맞춰라

plt.scatter(train_input[:,0], train_input[:,1])
plt.scatter(25, 150, marker='^')
plt.scatter(train_input[indexes,0], train_input[indexes,1], marker='D')
plt.xlim((0, 1000))
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
xlim - x축 스케일 지정

스케일 큰 쪽에 따라가게 되어 스케일 맞춰주는 작업이 필요함!
표준 점수로 바꾸기
z점수 = (특성 - 평균)/표준편차
mean = np.mean(train_input, axis=0)
std = np.std(train_input, axis=0)
print(mean, std)
train_scaled = (train_input - mean) / std
axis = 0으로 하면 행을 따라 쭉 계산함(열마다)
axis = 1로 하면 각 행마다 하나씩 계산함.
수상한 도미 다시 표시하기
new = ([25, 150] - mean) / std
plt.scatter(train_scaled[:,0], train_scaled[:,1])
plt.scatter(new[0], new[1], marker='^')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()


전처리 데이터에서 모델 훈련
kn.fit(train_scaled, train_target)
test_scaled = (test_input - mean) / std
kn.score(test_scaled, test_target)
//1.0
print(kn.predict([new]))
//[1.]
distances, indexes = kn.kneighbors([new])
plt.scatter(train_scaled[:,0], train_scaled[:,1])
plt.scatter(new[0], new[1], marker='^')
plt.scatter(train_scaled[indexes,0], train_scaled[indexes,1], marker='D')
plt.xlabel('length')
plt.ylabel('weight')
plt.show()

전처리 과정은 꼭 필요!!
참고자료
https://www.youtube.com/watch?v=kaCJ-knm8KU&list=PLVsNizTWUw7HpqmdphX9hgyWl15nobgQX&index=5
'ICT 멘토링 > 혼자 공부하는 머신러닝+딥러닝' 카테고리의 다른 글
7강 - 사이킷런으로 선형 회귀 모델 만들어 보기 (0) | 2021.06.17 |
---|---|
6강 - 회귀 문제를 이해하고 k-최근접 이웃 알고리즘으로 풀어 보기 (0) | 2021.06.17 |
4강 - 훈련 세트와 테스트 세트로 나누어 사용하기 (0) | 2021.05.27 |
3강 - 마켓과 머신러닝 (0) | 2021.05.27 |
2강 - 코랩과 주피터 노트북으로 손코딩 준비하기 (0) | 2021.05.27 |