일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자연어 처리
- F분포
- 텐서플로2와 머신러닝으로 시작하는 자연어처리
- rnn
- 텍스트 분류
- 구글 BERT의 정석
- 밑바닥부터 시작하는 딥러닝
- 밑바닥부터 시작하는 딥러닝2
- student t분포
- 머신러닝
- 기술통계학
- 군집화
- Django
- 다층 퍼셉트론
- 은준아 화이팅
- 최소자승법
- Pandas
- 오래간만에 글쓰네
- 차원축소
- 파이썬 pandas
- 가설검정
- numpy
- 감성분석
- 코사인 유사도
- word2vec
- 모두의 딥러닝
- 회귀분석
- 기초통계
- 히스토그램
- 결정계수
- Today
- Total
목록전체 글 (149)
데이터 한 그릇
array 쪼개기 a = np.arange(24) a 1차원 배열 생성 a = np.split(a,2) default는 axis = 0임 나누면 행으로 2개로 나뉘어지게 됨 array 합치기 hstack, vstack 쪼갰으면 합쳐보자 a = np.arange(24) x,y,z = np.split(a,3) split으러 3개로 일단 나눈다. 행기준 np.hstack((x,y)) 수평으로 쭉 이어 붙여진다 1,2,3,4,5,6,7,8,8,~~ 결과는 1차원 배열이다 np.vstack((x,y)) 수직으로 이어붙여준다. 따라서 데이터는 2차원 배열이된다. stack axis = 0부터 합쳐진다. a = np.arange(16).reshape(4,4) a 배열 생성 np.split(a,2) #axis = 0으..
arange, reshape np.arange(10) 1부터 9까지의 1차원 array를 만든다. np.arange(10).reshape(2,5) 10에 맞춰서 2행 5열로 배열을 만든다. 행렬의 shape을 reshape을 조정할 수 있다. a = np.arange(24).reshape(2,3,4) 깊이를 깊게 하여 만들 수 있다. a.reshape(2,3,-1) -1은 앞의 인자들을 참조하여 자동으로 행렬을 완성시켜준다 행렬곱 연산 파이썬 @을 이용한 1연산 a = np.array([[0,1,2],[3,4,5]]) b = np.array([[6,7,8],[9,10,11]]) a와 b의 shape을 보면 2 * 3이기 때문에 연산곱의 조건을 만족시키지 못함 따라서 b를 전치시켜서 행렬곱을 수행할 것임 ..
넘파이 copy 생성 1)파이썬 copy 파이썬은 기본적으로 Shallow Copy이다. Shallow Copy란 카피된 것과 원본이 메모리 주소를 공유하고 있는 copy를 의미한다. x = [1,2,3] y = x.copy() print(x) print(y) print(x == y) print(x is y) x[0] = 7 print(x) print(y) 데이터가 1차일때는 copy를 하여도 주소를 공유하지 않는다. 따라서 값을 바꾸어도 x, y의 데이터 값은 다르다. x = [[1,2,3]] y = x.copy() print(x) print(y) print(x == y) print(x is y) print(x[0] is y[0]) x[0][0] = 7 print(x) print(y) 하지만 데이터가 ..
numpy 값 만들기 import numpy as np a = np.array([1,2,3,4]) #1차원 배열(벡터)에 데이터를 생성 numpy에서 1차원 배열은 벡터라고 부른다. b = np.array([[1,2],[3,4]]) #2차원 배열 => 행렬 2차원 배열은 행렬이라고 부른다. type(a) type(b) print(dir(a)) print(dir(b)) 1차원 배열이든 2차원 배열이든 type과 dir은 동일하다. 한번 확인해본다. c = np.array([[[1,2],[3,4],[5,6]]]) type(c) print(dir(c)) 3차원 배열도 type과 dir은 동일하다. 3차원 이상의 배열부터는 텐서(tensor) 라고 부른다. a = np.array([1,'2',3]) b = np..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ccvcvZ/btq5MoCRpKp/QwuwkDkQa17sGjDLi3rC7k/img.png)
평균 이동(Mean Shift)의 개요 군집화 머신러닝 중에 하나인 k-means은 임의의 군집 중심점을 잡은 이후에 그 주변의 데이터의 평균 거리로 이동을 하면서 군집화를 진행한다. 평균 이동 알고리즘도 이와 비슷하다. 단, 평균 데이터의 거리로 이동하던 k-means에 반해서, 평균 이동은 데이터의 밀도를 기준으로 삼아서 군집 중심점이 이동한다. 그렇다면 어떤 방식으로 밀도가 가장 높은 곳으로 군집 중심점이 이동할까? 평균 이동 군집화는 데이터의 분포도를 이용해서 군집 중심점을 찾는다. 이를 위해서 확률 밀도 함수를 이용한다. 죽, 확률 밀도 함수가 가장 피크인 지점을 군집 중심점으로 이동한다. 그리고 일반적으로 주어진 모델의 확률 밀도 함수를 찾기 위해서 KDE(Kernal Density Estim..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byFj6S/btq5LW5AiNF/MUJU4lkAYhvmDzwbwEPFZK/img.png)
DBSCAN 개요 DBSCAN 적용하기 DBSCAN 개요 만일 데이터 셋이 복잡한 기하학적 분포를 가지고 있다면 앞서 살펴봤던 K-MEAN, GMM으로는 효과적인 군집화를 하기 어렵다. DBSCAN 같은 경우에는 복잡한 기하학적 분포를 가지고 있는 데이터를 군집화할 때 효과적으로 군집화를 수행할 수 있다. DBSCAN을 구성하는 가장 중요한 두 가지 파라미터는 입실론(epsilon)으로 표기하는 주변 영역과 이 입실론 주변 영역에 포함되는 최소 데이터 개수이다. (입실론 영역, 영역 내 최소 데이터 개수) 데이터 세트 내의 데이터 포인트에 대해서 입실론 내 최소 데이터의 개수에 따라 다르게 정의내린다. 핵심 포인트(core point) : 입신론 주변 영역 내에 최소 데이터 개수 이상의 데이터를 가지고 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sxu7z/btq5of7wISt/5pCagliCnYBg5G2zQt1QOK/img.png)
GMM(Gaussian Mixture Model) 소개 GMM과 K-평균 비교 GMM 소개 GMM은 분석 대상의 데이터 셋이 여러 개의 가우시안 분포를 가지고 있는 데이터들의 결합으로 생성됐다는 가정하에서 군집화를 수행하는 방식을 말한다. 만일 분석 데이터 셋이 세 개의 가우시안 분포가 합쳐져 있다고 가정해보자. GMM분석은 먼저 전체의 데이터 셋에서 개별 가우시안 분포를 추출한다. 만일 정규분포 여러개가 합쳐진 데이터 셋이라면 전체 데이터 셋의 분포모양을 통해서 그러한 사실을 쉽게 파악 가능하다.(분포의 모양 때문에) 만일 각각의 분포를 추출해서 분석을 하게 되면, 각각의 군집을 따로 분석한 것과 같다. 결국 GMM군집화 방식은 LABEL들이 추출된 각각의 분포 중에 어디에 속하는지 결정하는 방식이다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/WujKZ/btq5pES7LiN/A1aBi7feYYAnfhohxJJk1K/img.png)
k-평균 알고리즘 이해 군집화 알고리즘 테스트 해보기 군집평가 k-평균 알고리즘 이해 k-평균 알고리즘은 군집화 데이터 분석을 할 때 가장 많이 사용되는 알고리즘 중 하나이다. 특정 지점을 임의로 선택하고 그 지점에 가까운 데이터들을 선택하는 군집화 기법이다. 처음에 임의로 지정되었던 군집 중심점은 첫 선택된 데이터들의 평균 중심지점을 계산하고 그곳으로 이동한다. 계속 이러한 과정을 반복하면서 더이상 군집 중심점의 이동이 없다면 데이터 학습을 마치게 된다. k-평균은 알고리즘이 단순하고 간결하다는 장점을 가지고 있다. 반면에 군집화의 정확도가 떨어지고 반복을 수행하는 횟수가 많을수록 처리속도가 느리다는 단점도 존재한다. from sklearn.preprocessing import scale from sk..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKhVsk/btq4IDVau6G/bdN97eKfopb30jRsTxOaNK/img.png)
LDA LDA 실습 SVD SVD 실습 NMF NMF 실습 LDA LDA(Linear Discriminant Analysis)는 선형 판별 분석법으로 불린다. PCA와 매우 유사하지만 PCA같은 경우 데이터의 변동성이 가장 큰 벡터를 찾았지만 LDA같은 경우에는 타겟 데이터를 잘 분류하기 위해서 결정 값들을 최대한 분류할 수 있는 벡터를 찾는다. LDA는 특정 공간상에서 결정 값을 분리하는 것을 최대화 하기 위해, 클래스 간 분산(between-class-scatter)과 클래스 내부 분산(within-class-scatter)의 비율을 최대화하는 방식으로 벡터를 찾는다. 비율을 최대화 하기 위해서는 클래스 간 분산을 최대화 시키고 클래스 내부 분산을 최소화 시키면 된다. 결국 LDA는 PCA와 달리 데..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLuebN/btq4gbdkuQi/hBdRAmKTvDBLxHRD9MpNhK/img.png)
차원 축소란 PCA 개요 차원 축소란? 머신러닝 차원 축소 편에서는 대표적인 차원 축소 알고리즘인 PCA, LDA, SVD, NMF에 대해서 살펴볼 예정이다. 차원 축소란 매우 많은 피처로 구성된 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것이다. 일반적으로 차원이 증가할수록 데이터 포인트 간의 거리가 기하급수적으로 증가한다. 따라서 수많은 데이터 피처를 가지고 있는 데이터 세트 경우에는 상대적으로 적은 피처를 가지고 있는 데이터 세트에 비해서 예측도가 떨어진다. 따라서 데이터 피처를 줄여 차원을 줄이는 차원 축소를 해야만 한다. 차원 축소는 피처 선택(feature selection)과 피처 추출(feature extraction)로 나눌 수 있다. 피처 선택은 말 그대로 특정 ..