전체 글 53

Word2Vec의 방법론 두가지(CBow, Skip-gram)

Word2Vec은 말그대로 단어를 벡터로 나타내는 방법으로, 많이 사용되는 임베딩 방법중 하나입니다. 컴퓨터는 글자를 0과 1로 표현해야, 이해할 수 있기 때문에 벡터화를 해주는 것입니다. 임베딩은, 벡터화를 할 때 0과 1로 나타내는 것에서 연속적인 값을 가질 수 있도록 합니다. 즉 기존 원핫인코딩으로 (0,1)로만 표현하게 되면 두 문장의 유사도를 계산 할 수 없습니다 왜냐하면 내적이 0 이 되기 때문입니다 그래서 두 문장의 관계를 임베딩으로 표현하여 연속적인 [0.44, 0.22]를 벡터로 나타내는 것입니다. 1) CBow : 주변 단어에 대한 정보를 기반으로 중심 단어의 정보를 예측하는 모델 2)Skip-gram 중심 단어의 정보를 기반으로 주변 단어의 정보를 예측하는 모델

카테고리 없음 2021.08.01

머신러닝 및 코딩 스터디(08_01)

공분산이 0이여도, 항상 독립적인 것은 아니다 에 대해 알아보기 벡터의 직교가 성립되면 두 벡터는 상관관계가 없다. 알아보기 span, basis의 명확한 차이점 알아보기 가우시안 elimination 알아보기 Projection - 원리 알아보기 scree plots(주성분 분석의 개수) 알아보기 군집분석을 할 때 카테고리형은 ? EDA가 가능한가? Rule of thumb 백준 sys.stdin

카테고리 없음 2021.08.01

Clustering

Clustering 의 정의 비지도 학습(Unsupervised learning Algorithm)의 한 종류입니다. Clustering 목적 Clustering는 정답지가 없는 비지도 학습이기 때문에, 데이터 간에 얼마나 유사한지를 볼 수 있는 방법중 하나입니다. 또한, 데이터를 요약/정리 하는 방법중 하나이며, 정답을 보장하지 않는다는 문제가 있습니다. 그래서 실제 예측에서 쓰이기보단 EDA를 하는 방법 중 하나로 많이 쓰입니다. Clustering 의 종류 Hierarchical Agglomerative: 개별 포인트에서 시작 후 점점 크게 합쳐감 Divisive: 한개의 큰 cluster에서 시작후 점점 작은 클러스터로 나눠감 Point Assignment 시작 시에 cluster의 수를 정한 다..

머신러닝 2021.07.31

High dimensional data, 차원 축소

Vector transformation 선형 변환은 임의의 두 벡터를 더하거나 혹은 스칼라 값을 곱하는 것을 의미한다. Linear Projection도 일종의 vector transformation이다. Transformation은 matrix를 곱하는 것을 통해, 벡터(데이터)를 다른 위치로 옮긴다라는 의미를 가지고 있다. import matplotlib.pyplot as plt import numpy as np input_vector = np.array([2, 4]) transform_matrix = np.array([[2, 1], [1, -3]]) output_vector = np.matmul(transform_matrix, input_vector)# [8, -10] print(output_vec..

머신러닝 2021.07.31

선형대수 - 공분산, 상관계수, 단위벡터 등

분산(Variance) 분산은, 데이터가 얼마나 퍼져있는지를 측정하는 방법 이는 각 값들의 평균으로부터 차이의 제곱 평균 분산을 구하기 위해서는 평균부터 계산 # 분산 쉽게 계산하기 with Python print(df.컬럼명.var(ddof = 0) # ddof 자유도 주의해야 할 것은 샘플의 분산은 모집단의 분산의 추정치 이며, 일반적으로 샘플의 분산을 계산할 때 N - 1 로 나누어야 합니다. N-1로 나누는 것은 표본의 분산이나 표준편차를 모집단의 분산이나 표준편차를 예측하는 추정치로 사용하려는 의도 때문이다. 표본의 크기가 큰 경우는 n-1이나 n의 큰차이가 없지만, 표본의 크기가 작은 경우 실제적인 차이가 발생한다. 표본의 크기가 작은경우 표본의 분산이나 표준 편차를 n을 사용하는 경우 모집단..

선형대수 2021.07.31

선형대수 - 벡터와 매트릭스

Determinant 스칼라와 벡터 스칼라와 벡터는 선형 대수를 구성하는 기본단위 스칼라는 단순히 변수로 저장되어 있는 숫자이며, 벡터 혹은 매트릭스에 곱해지는 경우 해당 값에 곱한 값으로 결정 벡터는 파이썬에서 주로 list로 사용되며, 이전에 다뤘던 것처럼 데이터셋을 구성하고 있는 데이터프레임의 행과 열로 사용되기도 한다. 매트릭스는 벡터의 모음으로 간주될 수도 있 수도 있다. 스칼라 : 크기만을 나타내는 것, 방향이 없음. 벡터 : 크기와 방향을 동시에 나타낸다, 사칙연산이 가능하다. 벡터의 크기(Magnitude, Norm, Length) 벡터의 Norm은 단순히 길이 모든 값을 제곱하여, 루트 씌운 값이 벡터의 크기이다. 벡터는 선이기 때문에, 피타고라스를 통해 길이를 구할 수 있는 것 벡터의 ..

선형대수 2021.07.31

Feature Engineering, Data Manipulation

Feature Engineering이란 전공 지식, 창의성 등을 바탕으로 데이터셋의 속성들을 조합하여 새로운 속성을 만드는 것을 말한다 예를 들어 BMI지수(몸무게 / (신장 * 신장)) 등이 있다 String의 처리 1,000 + 1,000 = 1,0001,000 # 원하는 결과값 = 2000 일반적으로 머신러닝 모델링에서 문자열로 이루어진 값을 사용하지 않습니다. (매우 복잡) 그렇기 때문에 문자열을 처리해줄 수 있는 방법이 필요합니다. A = 1,000 B = 1,000 A = A.replace(',', '') # 문자열 ,을 공백으로 처리 B = B.replace(',', '') # 문자열 ,을 공백으로 처리 A+B = 2000 위의 원하는 결과 값을 위해선 ,를 제거해야합니다 이때 사용하는 함수..

머신러닝 2021.07.15