분류 전체보기 310

[Python] Class

딥러닝을 다루면 많이 접해볼 수 있는 클래스(Class)이다. 딥러닝을 할 때에는 기본적으로 클래스를 생성하여 함수를 받아오지만 머신러닝을 하거나 단순 코딩을 할 때에는 클래스를 정의하지 않고 사용했던 것 같다. 클래스를 만들고 내부에 함수와 변수, 인스턴스 등을 만들어 사용을 한다. Class 내부의 구조는 다음과 같다. 생성자(Constructor) : 클래스를 만들 때 자동으로 호출되는 특수한 함수라고 부르며, 파이썬에서는 생성자의 이름을 일반적으로 __init__으로 하고, 첫번째 인수로 객체 자신을 의미하는 self를 받아서 사용한다. 메소드(Method) : 클래스가 갖는 함수이며, 인스턴스를 조작하는 인스턴스 메소드, 클래스 전체를 처리하는 메소드, 인스턴스 없이도 작동하는 메소드 등이 존재..

Python 2022.01.14

[Python] Scikit-learn에서 cross validation 사용하기

교차검증법에는 다양한 방법이 존재한다. 일반적으로는 n개의 집단으로 나누어 교차검증을 하지만 LOOCV(Leave-One-Out Cross-Validation)의 경우에는 분할의 수를 데이터의 수 만큼 나누어 평가를 하게 된다. 만약 데이터가 100개라면 데이터를 100개로 나누고 99개는 학습, 나머지 하나로 평가를 하는 형태로 진행된다. LOOCV의 경우 데이터의 수가 적을 때 극한으로 성능을 끌어올리기 위해서 주로 사용된다. 사이킷-런(scikit-learn)에서는 교차검증에 대한 패키지를 제공해주고 있다. sklearn 2.0 버전 이하인 경우에는 아래와 같은 방식으로 호출을한다. from sklearn import cross_validation 하지만 그 이후 버전에서는 아래와 같이 cross_..

Python/Scikit-learn 2022.01.14

[Recommender System] 협업 필터링(Collaborative Filtering)

협업 필터링(Collaborative Filtering; CF)은 추천시스템을 배우는 사람의 입장에서는 가장 기본적인 모델 중 하나일 것이다. 협업 필터링 중에서 초기 알고리즘인 이웃 기반 협업 필터링은 크게 두 가지 유형이 존재한다. 1. 사용자 기반 협업 필터링(User-based CF) 사용자 기반 협업 필터링은 사용자에게 추천을 제공해주기 위해 해당 사용자와 유사한 사용자의 평점을 이용하여 아이템을 추천해주는 방법을 말한다. 2. 아이템 기반 협업 필터링 (Item-based CF) 아이템 기반 협업 필터링은 아이템에 대한 추천을 만들기 위해 해당 타깃 아이템과 유사한 그룹(A)을 형성한 후 타깃 사용자가 그룹(A)에 대한 평점을 확보하여 이를 기반으로 추천해주는 방법을 말한다. 사용자 기반 CF..

[Recommender System] Collaborative Filtering, Content-based, Knowledge-based

아마존, 넷플릭스, 구글 등 여러 기업에서 책, 영화, 뉴스 등을 추천해주기 위해서 여러 추천시스템 방법을 활용하고 있다. 추천시스템 중에서 가장 대표적인 예로는 협업 필터링(Collaborative Filtering), 콘텐츠 기반(Content based), 지식 기반(Knowledge based) 등이 존재한다. 협업 필터링(Collaborative Filtering) 협업 필터링은 추천시스템을 공부하는 사람이라면 다들 들어 봤을 것이라고 생각한다. 협업 필터링 방법은 사용자와 아이템 간의 관계를 보는 방법이라고 생각하면 된다. 명시적(Explicit) 데이터를 기준으로 한다면 사용자가 영화를 시청하고 난 후 해당 영화에 평점을 매기는 형태로 행렬(matrix)를 만든 것이고, 암묵적(Implici..

[Statistics] Factor analysis

요인분석(factor analysis, FA)은 관측한 여러 변수로부터 요인을 추출하여 요인들을 통해 변수 간의 관련성을 설명하려는 기법이다. 예를 들어, 제품에 대한 소비자 평가를 위해 20개의 평가 설문항목을 만들 경우, 설문항목은 제품품질, 제품서비스, 제품가치 등과 같은 세 가지 잠재요인(Latent factor)의 함수로서 표현할 수 있다. 이처럼 요인분석은 여러 관측변수로부터 직접적으로 관측이 가능하지 않은 공통의 요인을 추출하는데 이용한다. 주성분분석처럼 적재값을 산출하여 점수화하지만, 주성분분석과는 달리 요인분석은 측정 가능한 변수들로부터 그 안에 잠재되어 있는 해석 가능한 소수의 요인을 찾는 것을 목적으로 한다. 이를 위해 요인과 변수 간의 관계가 명확히 드러나도록 요인의 축을 회전(ro..

[Short] Sentiment Analysis in TripAdvisor, Ana Valdivia (2017)

Sentiment Analysis in TripAdvisor / IEEE Intelligent Systems Vol. 32 (2017) Ana Valdivia, Victoria Luzon, Francisco Herrera Web 1.0에서 Web 2.0으로 변화하면서 웹에 방대한 양의 Review나 사용자의 의견 등의 데이터가 많아졌다. 본 논문에서는 감성분석을 수행하는데 CoreNLP, Syuzhet, Bing, SentiStrength 총 4가지의 분석 기법을 통해서 Tripadvisor Review를 분석했다. 첫번째로 긍정적인 리뷰만을 가지고 분석을 시행했는데, 긍정적인 리뷰 내에서도 상당히 많은 양의 부정적인 리뷰들이 속해있었다. 사용자들은 주로 평점을 좋게 주고, 리뷰 내용은 부정적인 의견을 ..

[Statistics] non-parametric test with bootstrapping

모수통계 방법을 사용할 수 없을 때 비모수통계와 permutation test를 많이 이용하지만, permutation test는 경험적 분포를 만들어 내기 때문에 p-value를 구해낼 수는 있지만 신뢰구간을 추정하는 작업은 쉽지 않다. 왜냐하면 신뢰구간은 검정통계량이 아니라 모집단 평균의 추정치인 표본평균에 대해서 계산되어야하기 때문이다. 이때 bootstrapping 을 사용해 신뢰구간 추정에 있어 적합한 비모수검정 기법을 제공해준다. bootstrapping은 원래의 데이터로부터 표본을 반복적으로 무작위 추출(random sampling with replacement)하여 검정통계량의 경험적 분포를 생성한다는 것이 permutation test와 큰 차이점이다. ( permutation은 samp..

[Statistics] non-parametric statistics with rank sum

추론통계는 parametric, nonparmetric으로 나누어 볼 수 있다.모수통계는 모수를 추정하는 기법이며, 모수통계의 대표적인 방법은 t-test로 꼽을 수 있다. 비모수 검정은 모수에 대한 가정을 전제로 하지 않고 모집단의 형태와 관계없이 주어진 데이터에서 직접 확률을 계산하여 통계적으로 검정하는 분석방법이다. 일반적으로 표본의 수가 30개 미만이면서 정규성을 만족하지 않는 경우, 수치에는 의미가 없고 상대적 크기가 의미있는 경우, 변수의 척도가 등간, 비율이 아닌 명목, 서열 척도로 구성되었을 경우 비모수적 검정을 사용한다. 비모수검정에는 데이터의 순위를 이용하는 전통적인 비모수적 접근법인 rank test, resmapling을 통해 생성한 경험적 분포(empirical distributi..

[Statistics] Logistic Regression with binomial

일반적인 Linear Regression Analysis에서 Y는 연속형 변수이면서 정규분포를 따라야 사용이 가능하다. 하지만 현실의 데이터들은 이러한 가정들이 항상 충족되는 것은 아니다. 현실에서는 다음과 같은 문제들도 다루는 경우가 있다. 1. Y가 범주형일 경우, 성공/실패나 생존/사망 등과 같은 두 개의 범주로 구성된 binary variable일 수 있고, 여러 범주를 띄는 우수/보통/미흡, A/B/C/D/F 등의 세 개 이상의 범주로 구성된 multicategory variable일 수 있다. 이 경우 범주형은 정규분포를 따르지 않는다. 2. Y는 어떤 사건이 발생하는 횟수일 수 있다. 연간 철도사고횟수, 상담횟수, 식당을 이용하는 횟수 등의 제한된 값을 가지며 음수일 수 없다. 또 해당 변수..

[short] Deep Neural Networks for YouTube Recommendations, Paul Covington (2016)

YouTube에는 워낙 방대한 자료와 새로운 영상의 업로드, 사용자의 행동의 sparse한 부분 등의 문제로 추천하기가 엄청 어렵다. 해당 논문에서는 최상의 영상을 추천해주기 위해 Deep Neural Networks를 사용했고, 모든 상황을 고려해 추천을 해주는 시스템을 구축했다. 사용한 데이터는 YouTube 앱 화면에서 손가락의 업/다운, 제품 내 설문조사, 사용자의 언어, 영상의 언어 등 모든 것을 고려해 input으로 집어넣고 3개의 Layer를 통과해 추천영상을 제공해준다. [Layer는 Linear + ReLU로 총 3겹을 쌓았다.] Layer를 겹겹이 쌓았을 때 성능이 개선되는 것을 볼 수 있다. 결론 딥러닝을 활용했지만 여전히 정확한 예측은 어렵다. 일부항목에서는 다른 machine-le..

반응형