-
비지도 학습기계학습 2021. 11. 12. 13:13
정답이 없는 데이터를 분류할 수 있게 학습하는 방법입니다. 군집화 개념 유사한 속성들을 갖는 관측치들을 묶어 전체 데이터를 몇 개의 군집으로 나누는 것 기준 동일한 군집에 소속된 관측치들을 서로 유사할 수 록 좋다 상이한 군집에 소속된 관측치들은 서로 다를 수 록 좋다. 수행 시 주요 고려사항 어떤 거리 척도를 사용하여 유사도를 츨정할 것인가 어떤 군집화 알고리즘을 사용할 것인가 어떻게 최적의 군집 수를 결정할 것인가 어떻게 군집화 결과를 측정 평가할 것인가 유사도 척도 유클리디안 거리 (Euclidean) 맨하탄 거리 (Manhattan) 마할라노비스 거리 (Mahalanobis Distance) 상관계수 거리 (Correlation) 알고리즘 군집화 알고리즘 종류 계측적 군집화 개체들을 가까운 집단부..
-
트리 알고리즘기계학습 2021. 10. 29. 13:52
결정 트리 어떤 항목에 대한 데이터와 결과를 연결시켜주는 예측 모델 예측 모델은 로지스틱 회귀로 설명할 수 있다. 하지만, 잘모르는 사람에게 설명하기를 어렵다. 그래서 나온 것이 결정 트리이다. 하지만, 이렇게 나오면, 판단하기 힘들다. 결정 트리 분석 트리의 깊이를 제안해서 표현할 수 있다. 지니 불순도 집합에 이질적인 것이 얼마나 섞였는지를 측정하는 지표이다. 0.5가 제일 큰 값이다. 0이 되면, 그 지니는 불순물이 없는, 순수하다고 할 수 있다. 스케일 조정 스케일을 조정 하든, 안하든 똑같은 결과를 보여준다. 검증 세트 과대적합 모델을 될 가능성을 줄여준다. 검증 세트로 모델을 평가해서, 이 검증세트 중에서 가장 우수한 결과를 보이는 모델을 선택한다. 교차 검증 쉽게 말하면, 한정된 테스트 세트..
-
서포트 벡터 머신기계학습 2021. 10. 15. 15:10
선형 SVM Support Vector Machine 분류 문제에서 일반화(generalization)능력이 입증되어 머신러닝 알고리즘에서 인기가 높다 선형 또는 비선형 분류뿐만 아니라 회귀, 이상치 탐색에도 사용된다. 복잡한 분류 문제와 잘 맞고, 중간 크기의 데이터 셋 소프트 마진 SVM Support vectors가 위치한 경계선에 여유를 두자 여유 변수 (Slack Variable) C 라는 하이퍼파라미터 제공(penalty) Slcak 변수와 규제 C 값을 줄이면 오류를 허용하는 정도가 커지며 , Margin 또한 커진다 C 값을 크게하면 오류를 허용하는 정도가 작아지며 , Margin 또한 작아진다 비선형 SVM 선형적으로 분류할 수 없는 데이터 셋이 존재한다. 다항 특성과 같은 특성을 추가 ..
-
분류 알고리즘기계학습 2021. 10. 1. 14:55
어떤 데이터가 주어질 때, 그 데이터의 정체를 판별해 주는 것이다. 로지스틱 회귀 어떤 데이터가 어떤 범주에 속할 확률을 0~1 값으로 예측해준다. 무게, 길이, 대각선, 높이 ,두께 --> faeture 그림에서 0.5 이상을 때, ' x '이고, 0.5 이하이면, ' y '라고 할 수 있다. 확률적 경사 하강법 여러 종류의 문제에서 최적의 해법을 찾는 일반적인 최적화 알고리즘 비용 함수를 최소화하기 위해 반복해서 파라미터를 조정하는 것이다. 학습률 하이퍼파라미터를 결정되는 스템의 크기가 중요하다. 배치 경사 하강법 매 스텝에서 전체 훈련 세트를 사용해서 그레이디언트를 계산한다. 훈련 세트가 커지면 매우 느려진다. 확률적 경사 하강법 매 스텝에서 한 개의 샘플을 무작위로 선택하고 그 샘플에 대한 그레이..
-
머신 러닝 만들기 - 선형 회귀기계학습 2021. 9. 24. 16:46
50cm 농어의 이웃 50cm의 농어가 들어오면 그 무게가 어느 정도가 되는 지 예측하는 것을 만든는 것이다. # 50cm 농어의 이웃 distances, indexes = knr.kneighbors([[100]]) #훈련 세트의 산점도를 그린다. plt.scatter(train_input, train_target) plt.scatter(train_input[indexes], train_target[indexes], marker='D') plt.scatter(50,1033, marker='^') plt.show() 어떤 직선이 가장 잘 표현 했는지 알아야 한다. print(lr.score(train_input, train_target)) 0.9398463339976039 print(lr.score(tes..
-
머신러닝 만들기 - K최근접 이웃회귀기계학습 2021. 9. 24. 16:19
농어의 무게를 예측 농어의 길이를 보고 무게를 예측하는 것을 만드는 것이다. 농어의 길이를 준비한다. import matplotlib.pyplot as plt plt.scatter(perch_length, perch_weight) plt.xlabel('length') plt.ylabel('weight') plt.show() 훈련세트를 준비한다. train_test_split를 쓴다. from sklearn.model_selection import train_test_split train_input, test_input, train_target, test_target = train_test_split( perch_length, perch_weight, random_state=42) train_input =..
-
회귀기계학습 2021. 9. 24. 14:48
회귀 임의의 어떤 숫자를 예측하는 문제 두 변수 사이의 상관관계를 분석하는 방법 K-최근접 이웃 회귀 K-최근접 이웃 회귀는 근처에 있는 이웃의 값들의 평균을 구해서, 그 평균값을 가지는 것이다. 과대적합과 과소적합 과대적합(Overfitting) 훈련집합에 대해서만 거의 완벽하게 근사 학습과정에서 잡음까지 수용 과소적합(Underfitting) 모델의 용량이 작아 오차가 클 수 밖에 없는 현상 모델이 너무 단순하여 훈련 세트에 적절히 훈현되지 않는 상태 선형회귀 직선을 학습하는 알고리즘이다. 이처럼 직선 함수를 만들어서 새로운 데이터가 들어왔을 때, 이웃하고 멀리 떨어진 데이터의 값을 선형 함수를 이용해서 값을 구할 수 있다. 다항 회귀 (polynominal) 곡선을 표현해서, 좀더 정확한 근사값을 ..
-
머신 러닝 만들기 - 데이터 전처리기계학습 2021. 9. 17. 17:07
Handling of Missing Data 비어있는 데이터 채우기 array([['India', 49.0, 86400.0], ['Brazil', 32.0, 57600.0], ['USA', 35.0, 64800.0], ['Brazil', 43.0, 73200.0], ['USA', 45.0, nan], ['India', 40.0, 69600.0], ['Brazil', nan, 62400.0], ['India', 53.0, 94800.0], ['USA', 55.0, 99600.0], ['India', 42.0, 80400.0]], dtype=object) 'nan' 이라고, 되있는 부분이 비어있는 데이터 공간이다. 이 공간을 같은 속성의 값을 가진 데이터들의 평균값으로 넣어줄 것이다. import numpy..