본문 바로가기

전체 글

Unsupervised Learning: Hierarchical Clustering Hierarchical Clustering 계층적 군집 K-means랑 다르다. - 눈 사람 만들때, 눈덩이 굴리면, 커지듯이. - 각 데이터별로 거리를 계산한다. - 거리가 가까운것부터 계산 및 정렬한다. 그리고, 가장 가까운 것부터 묶는다. ㄴ그것을 정리한 표가 Dendrogram이라고 한다. ㄴ 그림처럼 하나씩 정리해나간다. ㄴ 또한, 거리 길이가 y값이 된다. 가까울수록 y길이가 짧아지고, 길수록 y값이 커진다. ㄴ 여기서 y값이 가장 긴 값을 택하여 그 절반의 값을 선으로 가로지른다. ㄴ 가로지르는 선과 맞닿은 부분들을 k값으로 택한다. ㄴ 해당 이미지는 맞닿은 점이 2개므로, k값을 2개로 택한다. ㄴ 정답은 없다. import scipy.cluster.hierarchy as sch sch.d.. 더보기
K-Means Clustering 실습 - Nan 확인 df.isna().sum() - X,y 구분 X = df.iloc[:, 3:] ㄴ y값은 기존 데이터에 있는 것이 아니라, 우리가 그룹으로 묶어야하므로, 따로 만들어야한다. - 모델링.. 하기 전에! from sklearn.cluster import KMeans kmeans = KMeans(n_clusters= , random_state= ) - 적절한 k값(몇개 그룹)을 찾기 위해서는, WCSS값을 확인해야한다. ㄴ 따라서 k를 1부터 10까지 다 수행해 보고나서 ㄴ WCSS 값을 확인해 본다. ㄴ 이때, 엘보우 메소드(Elbow Method)를 이용해서, 최적의 k값을 찾도록 한다. wcss = [] for k in range(2, 10+1): kmeans = KMeans(n_clus.. 더보기
Unsupervised Learning(비지도 학습): K-Means Clustering K-Means Clustering Unsupervised Learning 분집: 비슷한 부류끼리 묶어라. ㄴUnsupervised Learning은 정답이 없다. ㄴ 데이터 분포가 이렇게 되어있다고 할 때, 사람은 눈으로 바로 분류를 할 수 있지만, 컴퓨터는 눈이 없어, 숫자로 처리해야한다. ㄴ 컴퓨터의 동작방식과 사람의 동작방식이 다르다. K-means- Clustering ㄴ K: 개수를 말할 때 ㄴ mean: 평균 ㄴ Clustering :묶는다. (기본적인 진행 스텝이다.) ㄴ 기존 데이터에서 랜덤으로 두 점을 선택한다. (K=2) ㄴ 그리고, 피타고라스의 정리로, 두 점의 거리를 구한다. ㄴ 거리를 수직이등분하는 선을 찾는다. ㄴ 그 다음에, 그 선을 기준으로 분류를 한다. ㄴ 데이터 묶음에서 .. 더보기
non-linear : Decision Tree 1.a. Decision Tree non-linear 선보다는 범위로 나누자. 가지치기 - 이걸 거꾸로 보면, 나무같이 생겼다 해서, Tree라고 한다. ㄴ영역을 쪼갠다. ㄴ 가장 기본적인 모델, 실제 실무에서는 이걸 개선한 디시젼 트리가, 랜덤 포레스트라고 한다. import numpy as np import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv('data/Social_Network_Ads.csv') X = df.iloc[:, [2,3]] y = df['Purchased'] from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X= scaler.fit.. 더보기
실습2: 하이퍼 파라미터, 좋은 모델 조합 도출 방법 : Grid Search Grid Search - 인공지능을 만들려면, 마지막에 평가할 때까지 계속 실험을 해봐야한다. - 세팅 값에 따라서, 결과가 달라진다. 정답이 없다. Hyper Parameter 하이퍼 파라미터!! ㄴ 사람이 설정해줘야 되는 값이고, 어떤 값을 설정해야, 똑똑한 인공지능이 나올지는 아무도 모른다. svc(kernel = ‘linear’... kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} or callable, default=’rbf’ ㄴ 메뉴얼에서 가져와야한다. ㄴ 하이퍼 파라미터를 딕셔너리형태로 만들어놓는다. ## 외우자. param_grid = {'C': [0.1,1,10,100],'kernel': ['linear', 'rbf','poly'],.. 더보기
실습: 넘파이 데이터 옆으로 합치기, 데이터 추가: np.c_, np.append() 실습: Breast Cancer Classification - 유방암진단 문제 : 양성이냐 악성이냐 예측 - 30 features are used, examples: - radius (반지름) - texture (조직) - perimeter (둘레) - area - smoothness (local variation in radius lengths) - compactness (perimeter^2 / area - 1.0) - concavity (오목함) - concave points (오목한 부분의 점) - symmetry (대칭) - fractal dimension ("coastline approximation" - 1) - 30 input features - Number of Instances: 569.. 더보기
SVM: Support Vector Machine SVM: Support Vector Machine - 새로운 데이터가 들어왔을 때, 기존 데이터와의 거리를 선으로 분류하자. - 분류선에 가장 가까운 데이터들을, 가장 큰 마진(margin)으로 설정하는 선으로 결정하자. - 분류선을 Maximum Margin Classifer라고 한다. ㄴ가장 좋은 선은 가장 가까이 위치하고 있는 데이터, 그런 데이터를 서포트 벡터라고 한다. - SVM은 다른 머신러닝 알고리즘과 비교해서 무엇이 특별한가? ㄴ 사과인지 오렌지인기 분석하는 문제 ㄴ 일반적인 사과와 오렌지들은, 클래서파이어에서 멀리 분포한다. ㄴ 정상적이지 않은 것들, 즉 구분하기 힘든 부분에 있는 것들은 클래서파이어 근처에 있게 되며, ㄴ 이 데이터들이 레이블링 되어 있으므로, Margin을 최대화 하여.. 더보기
K-Nearest Neighbors 및 K값 K-Nearest Neighbors 빨간색이냐 녹색이냐 두개로 분류하는 문제를 해결할 것. - K란: 기존 데이터와 신규데이터의 거리를 계산한다. 계산해서 정렬을 한다. ㄴ 내 주위에 몇개의 이웃을 확인해 볼것인가를 결정한다. ㄴ 가장 거리를 가까운 것부터 먼 순으로, - K를 5로 정하면, 신규 데이터와 가장 가까운 데이터 수를 5개로 묶어서 빨간게 더 많으면, 빨간색으로 분류한다. - 거리 계산은 피타고라스 정리로 한다. ㄴ이런 거리를 Euclidean 거리라고 함. - Euclidean 거리에 의해서, 가장 가까운 K개의 이웃을 택한다. - 카테고리의 숫자가 많은 쪽으로, 새로운 데이터의 카테고리를 정해버린다. import numpy as np import pandas as pd import mat.. 더보기