목록python (19)
co-code 님의 블로그
재귀 함수함수가 자기 자신을 다시 호출하는 방법기동 조건 : 언제 멈출 것인가? 반드시 지정재귀 단계 : 문제를 똑같은 형태의 더 작은 문제로 쪼개어 자기 자신을 호출하는 부분예시 문제1. 카운트 다운 : '3, 2, 1 발사' 출력# 방법 1) for문for i in range(3,-1,-1): if i != 0: print(i) else: print('발사')>>> 3 2 1 발사# 방법 2) 재귀함수def countdown(n): #n : 카운트다운 시작 수치 #기동 조건 : n이 0이 되면 함수 호출을 그만 둔다. (발사 출력을 생성) if n==0: print('발사') return #수행하는 작업 print..
텍스트가 token이라는 수치로 변환 되고 각 token은 Word Embedding을 통해 벡터로 변환됨 순환 하지 않고 데이터를 한번에 병렬 처리할 수 있어 순환 신경망(RNN)과 LSTM(장단기 메모리) 보다 학습 및 훈련 속도가 획기적으로 빨라짐문장의 앞 뒤 거리에 상관없이 단어 간의 관계를 정확하게 이해할 수 있음구성 : 인코더(Encoder) + 디코더(Decoder) 인코더(Encoder) : 데이터 이해 디코더(Decoder) : 결과 생성import torch import pandas as pd import torch.nn as nn import torch.optim as optim from torch.utils.data import Dataset, DataLoaderfrom transf..
Doc2VecWord2Vec의 확장판기본적인 매개변수, 속성, 메서드는 Word2Vec와 같다.추가적인 부부분이 존재매개변수dm기본값 : 1학습 알고리즘을 선택1 : PV-DM0 : PV-DBOWdm_mean기본값 : 0문장 벡터의 계산 방식 (PV-DM)1 : 벡터들의 평균0 벡터들의 합산범위가 커지는 경우가 발생 -> 노이즈로 인한 성능의 저하가 발생할 수 있다.dm_concat기본값 : 0PV-DM에서 문서 벡터와 문장 벡터를 결합할 것인가?결합을 하는 경우 차원이 급격하게 증가dbow_words기본값 : 0PV-DBOW 사용 시 단어 벡터도 동시에 학습할 것인가?alpha | min_alpha기본값 : 0.025 | 0.0001보폭의 크기반복학습을 할 때 경사하강법의 기본적인 메뉴얼너무 크면 둔..
Word2Vec문자를 수치형으로 변환시켜주는 딥러닝 기반의 임베딩 기술매개변수(parameter)sentences기본값 : None -> 학습을 시킬 수 있다.토큰화가 된 문장 데이터 (2차원 데이터)vector_size기본값 : 100임베딩 벡터 차원의 개수 (feature의 수)window기본값 : 5예측 시 고려할 주변 단어와의 거리 (문맥의 크기)sg기본값 : 00인 경우 : CBOW 방식 (주변 단어들을 이용하여 중심 단어를 예측)1인 경우 : Skip_gram 방식 (중심 단어를 이용하여 주변 단어를 예측)min_count기본값 : 5최소 등장 빈도의 수적게 등장한 단어들을 제외hs기본값 : 0계산의 방식 지정0 : Negative Sampling (계산량 적음)1 : Hierarchical ..
LSA ( Latent Semantic Analysis : 잠재 의미 분석)문서 안에서 단어 사이의 잠재적인 의미 구조를 추출하는 기법TF-IDF 방식은 단어 간의 의미적 유사성을 반영하지 XTF-IDF 방식에서 SVD(특이값 분해)를 단어 간의 의미를 파악차원 축소를 통해서 관계성을 확인LSA효과벡터 공간의 차원을 줄여서 계산, 효율의 증가 (차원 축소)'영화', '필름' 등 비슷한 문맥의 단어를 가까운 벡터로 이동 (의미 유추)문서들을 주제별로 분류 (토픽 분석)TruncatedSVD (차원 축소 모델)절단된 특이값 분해고차원 희소행렬(값이 0인 행렬SA ( Latent Semantic Analysis : 잠재 의미 분석)문서 안에서 단어 사이의 잠재적인 의미 구조를 추출하는 기법TF-IDF 방식은 ..
TF - IDF 벡터화TF(Term Frequency : 단어 빈도) : 특정 문서 안에서 단어가 얼마나 자주 등장하는가?IDF(Inverse Document Frequency : 역문서 빈도) : 전체 문서들 중 그 단어가 등장한 문서의 비율의 역수단순하게 단어의 개수를 세는 방법(CountVectorizer)을 보완하여 이 문서에서는 유독 자주 나오지만 다른 문서들에서는 잘 안나도는, 유독 튀는 단어에 가중치를 부여하는 알고리즘수식적으로 표현하면 TF * IDF로 계산되어 텍스트를 실수형 벡터로 변환매개변수 (parameters)stop_words기본값 : None불용어 처리리스트의 형태를 통해서 특정 단어들을 제외'english'를 인자로 사용하면 영문자를 제외min_df기본값 : 1최소 문서 빈..
RNN (순환 신경망)이전 시점의 정보를 현재 시점의 계산에 반영하는 구조첫번쨰 입력 : 초기 상태(h_0 = 0)와 입력에 대한 상태(h_1)로 계산두번째 입력 : 이전의 상태(h_1)와 결합해서 계산 (h_2)세번재 입력 : 이전의 입력상태(h_2)와 현재의 입력상태를 결합해서 계산(h_3)...마지막 입력(반복 작업이 완료되었을 때) : 마지막 상태 (h_t) 생성 -> 모든 과거의 정보를 결합해놓은 상태parameter(매개변수)input_size : 각 시점(레이어)에서 입력 feature의 수hidden_size : 은닉층(출력)의 크기num_layers기본값 : 1RNN 은닉층의 개수 (층이 깊어질수록 복잡한 패턴을 발생)층의 개수가 늘어날수록 시간은 증가하고 과적합의 위험성이 존재1 ~3 ..
K - Means ( 평균을 이용한 군집화 )k개의 자동 분류하는 비지도 학습 알고리즘종속 변수가 존재하지 않는 데이터에서 유사한 데이터끼리 모음서로 가까운 데이터는 같은 그룹으로 묶어서 그룹화그룹의 중심점을 반복적으로 계산(중심점의 이동)하여 군집을 형성작업 순서초기의 중심점(k개)을 선택각각의 데이터들을 중심점과의 거리를 확인가까운 거리를 중심점으로 할당각 군집의 평균을 구해서 새로운 중심점을 설정중심점의 변화가 거의 없을 때까지 반복 실행장점 : 빠르고 단순하여 대용량의 데이터에서 적합단점군집의 수를 미리 알고 작성해야 함이상치에 굉장히 민감함parametern_clusters기본값 : 0군집의 개수를 지정너무 작거나 큰 경우에는 성능 저하init기본값 : 'K-Means++'초기의 중심점을 설정하..
PCA차원 축소 기법 : feature의 개수가 줄어든다.고차원 데이터(다수의 feature를 가진 데이터셋)를 상관관계가 없는 새로운 축으로 변환데이터의 분산을 최대한 보존하면서 차원을 줄여서 시각화parameter(매개변수)n_components기본값 : None주성분의 개수 또는 비율로 설정None : 모든 주성분을 유지int : 선택할 주성분의 개수 float(0 ~ 1) : 누적 설명 분산 비율을 기준으로 필요한 주성분의 개수를 선택'mle' : 자동으로 최적 차원의 수 측정 (샘플의 개수 whiten기본값 : False주성분 벡터를 단위 분산으로 정규화를 할 것인가 지정데이터의 정규화 효과svd_solver기본값 : 'auto'분해 방식 지원'auto' : 데이터의 크기에 따라서 자동 선택'f..
랜덤 포레스트(RandomForest)배깅 방식을 활용데이터 샘플링 방식 + 다수결 or 평균 사용사용하는 모델은 의사결정나무 고정 (랜덤포레스트 안에 의사결정나무가 하드코딩되어있음)각 노드에서 분할 할때마다 모든 피치에서 일부만 무작위로 선택하여 트리간의 상관성을 낮춰준다. -> 다양성 증가여러 결정 트리를 서로 다르게 학습 시킨 뒤 다수결(분류), 평균(회귀)으로 예측하는 배깅 기반의 앙상블부트스트랩(중복 데이터를 허용)과 특성의 무작위 선택을 이용해 모델 간의 상관성을 낮춰서 성능과 안정성을 높이는 방법고차원 데이터에서 안정성이 굉장히 높다대부분의 실무에서 많이 사용이 되느 알고리즘paramer(매개변수)n_estimators기본값 : 100모델의 개수를 지정criterion분류 : gini(기본값..
