본문 바로가기

Data/Data Science

(46)
[ML] Anomaly Detection 알고리즘 정리 1. OneClassSVM https://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html sklearn.svm.OneClassSVM — scikit-learn 0.22.2 documentation scikit-learn.org 2. Isolation Forest https://ko.logpresso.com/documents/anomaly-detection LOGPRESSO: 이상탐지 이제 이상거래나 내부유출탐지는 단순한 임계치 기반의 탐지규칙이 아닌 머신러닝 기반 탐지 기술이 필요합니다. ko.logpresso.com
[Pytorch] Linear Regression Prediction 간단한 Linear Regression모델 선언 import torch.nn as nn class LR(nn.Module): def __init__(self, in_size, output_size): super(LR, self).__init__() self.linear = nn.Linear(in_size, output_size) def forward(self, x): out = self.linear(x) return out # Linear Regression model 생성 model = LR(1, 1) # Linear Regression bias, weight 변수 확인 model.state_dict() """ OrderedDict([('linear.weight', tensor([[-0.3027]]))..
[Pytorch] Differentiation in Pytorch coursera pytorch 코드 내용 간단 정리 - 미분값을 알고싶은 변수는 tensor 선언동시에 requires_grad 값을 True로 설정 - backward() 함수는 미분을 적용하는 함수 - 미분함수에 변수를 넣을시 값을 얻고싶다면 .grad 로 얻을수있음 x = torch.tensor(2, requires_grad = True) y = x**2# y(x) = x^2 , y= 2^2 = 4 y.backward() # y'(x) = 2x 미분 x.grad # y'(x) = 2 * 2 = 4 u = torch.tensor(1, requires_grad = True) v = torch.tensor(2, requires_grad = True) f = u*v + u**2 f.backward() # ..
[Pytorch] LSTM 간단한 공부 2020년 새롭게 시작하는 프로젝트에서 LSTM을 사용해서 만드려고하는 작업이 있는데. 예전부터 말만하고 실행에 옮기지못하여 마음에 걸렸지만 이번년도엔 무조건 해봐야겠다... 먼저 계획한 프로젝트에서는 LSTM(RNN)의 many to one 유형을 사용하려고한다. 모델은 다음그림과 같을꺼고... 마지막 레이어에 softmax layer를 추가하여 LSTM Classification model로 만들면될꺼같다. 그리고 항상 궁금했던게 RNN, LSTM등 이러한 모델들은 input에 길이에 상관없다고했는데. 정확한 의미를 이해못했다. 이번에 공부하면서 알게된바로는 input의 dimension은 고정이되, input의 개수가 상관없다는건데. 글로는 내가 설명을 잘못하니... 코드에서 보자면... 간단하게 ..
[Pyspark] pyspark 내장 ML 모델사용 사용한 모델은 총 3개로(크게보면 두개) : 2개의 클러스터링 1개의 지도학습(Gradient Boostring Tree) pyspark에서 다음과 같이 선언 from pyspark.ml.clustering import KMeans, BisectingKMeans from pyspark.ml.classification import GBTClassifier 모델선언은 sklearn과 비슷하게 선언하면되는데 feature을 넣어줄때 약간 다른점이있다. 바로 train이나 test 데이터셋에 features라는 column이 있어야만 학습이 진행된다. 따라서 feature로 선택한 column들을 한번에 모아서 features라는 column을 새로 선언해줘야한다. 당연히 여기에 사용되는 pyspark 함수가 ..
[ML] Semi-Supervised Learning (label_propagation) 머신러닝에서는 크게 두가지로 나뉘는데 1. 지도학습(supervised learning) 2. 비지도학습(unsupervised learning) 지도학습중에서 추가로 나누자면 준지도학습(semi-supervised learning)이란 기법이있다. 이 기법은 우리가 흔히 데이터를 다룰때 일부한테만 정답지가 있고 일부한테는 정답지가 없을때 사용하는것인데 예를 들어서 다음 그림을 보자 위에 라벨링이 되어있는 데이터를 볼때 점선처럼 두개 부류로 나눌수가있다. 하지만 데이터가 적고, 단순한 모양으로인해 실제 데이터에서는 제대로 분류(작동)를 못할수가있다. 이때 추가로 라벨링이 되어있지않은 데이터를 넣을때 밑에그림과 같이 데이터 분포도를 띄우게되고. 여기서 semi-Supervised Learning을 하게되면..
[LSTM] 단계별 수식 정리 인터뷰중 LSTM에 관련하여 단계별로 물어보는질문이 있어서 좋은 사이트를 발견하여 정리 [출저]: https://dgkim5360.tistory.com/entry/understanding-long-short-term-memory-lstm-kr Long Short-Term Memory (LSTM) 이해하기 이 글은 Christopher Olah가 2015년 8월에 쓴 글을 우리 말로 번역한 것이다. Recurrent neural network의 개념을 쉽게 설명했고, 그 중 획기적인 모델인 LSTM을 이론적으로 이해할 수 있도록 좋은 그림과 함께 한.. dgkim5360.tistory.com 사실 난 AI를 전공한게 아니라서 개념자체를 공부하기가 매우 어려웠다. 현재 많은 딥러닝 라이브러리가 편의성을 제공..
[Pandas] 4분위수? pandas.Dataframe.describe함수 기준선을 정하려고 전체 데이터의 describe함수를 사용해보았는데 사실 count, mean, std, min 밖에 잘안보았다. 근데 이번에 기준선을 정할때 describe함수를 이용하면 좋다고 얘기를들어서 밑에 25%, 50%, 75%가 무엇인지 찾아보았고 이것들은 통계쪽에서 4분위수 라고 부르는것들이였다 즉, 25% 라는 뜻은 25%의 데이터들이 해당 값보다 낮다 라고 이해하면 될꺼같다.