목록 분류 전체보기 (281)
다중 분류 / Multinomial classification - 이전에 Logistic Regression으로 이진 분류를 처리하는 것을 공부하였다. 두 집합으로 나누는 것은 할 수 있는데, 여러 집합으로 분류해야하는 경우는 어떻게 처리해야할까. - 집합이 두개인 것과 똑같이, A와 A가 아닌 것, B와 B가 아닌 것, C와 C가 아닌 것으로 구분하여 이진 회귀로 처리하면 3개의 집합을 분류할 수 있다. - 이렇게 3개의 가설을 세울 수 있고, 그것을 학습하는 것으로 x가 각 집합에 속할 확률을 예측할 수 있다. 따라서 입력에 대한 3개의 함수 값을 비교하여, 가장 큰 값을 갖는 집합에 속하는 것으로 분류한다. Softmax - 위의 예제에서 가설 함수는 시그모이드 함수를 사용했으므로 0~1 사이의 값..
영화 추천 서비스공부한 자연어 처리를 연습 할 수 있는 간단한 서비스를 만들고 싶었습니다.영화를 입력하면 45000개의 영화 데이터 내에서 '제작 언어', '시리즈', '줄거리', '평점', '장르'를 바탕으로 가장 유사한 영화 n개를 추천합니다.웹 서버와 연산 서버로 구성되어, 연산 서버에서 유사한 영화 뽑는 연산을 처리하고, 웹 서버는 검색 영화, 추천 영화를 연산 서버와 주고 받고 페이지를 구성하여 브라우저에 응답합니다.연산 서버파이썬으로 제작한 연산 서버는 검색한 영화와 제작 언어 일치, 시리즈 존재 여부, 줄거리 유사도, 평점, 장르 유사 여부를 비교하여 가장 높은 점수의 n개 수의 추천 영화를 찾습니다. 소켓 통신으로 웹 서버로부터 검색 영화 정보를 받고, 연산 후 추천 영화 목록을 전송합니다..
1. DTM (Document-Term Matrix) : 문서 단어 행렬(DTM)은 문장 안 각 단어들의 빈도를 행렬로 표현한 것이다. 2. TF-IDF : TF는 각 문서 안에서의 단어의 빈도, DF는 문서군안에서 각 단어가 등장한 문서의 수를 의미한다. IDF는 DF에 반비례하는 값이다. 이 TF-IDF를 사용하여 문장끼리의 유사도나, 단어의 중요도를 구할 수 있다. #TF : term frequency #IDF : inverse document frequency #IDF는 이 DF의 역수인 것은 맞는데, 일반 역수를 사용하면 분자 (전체 문장의 개수)가 늘어짐에 따라 분모 (등장 문장의 수)는 그를 따라가지 못하므로, 그 값이 기하급수적으로 커져 결국 단어들의 중요성을 하향평준화 시켜 비교가 어려워..
백엔드 개발자를 꿈꾸는 학생 개발자에게 우연히 네이버 D2의 정상혁님이 쓰신 진로 칼럼 '백엔드 개발자를 꿈꾸는 학생 개발자에게' 을 읽게 되었다. 백엔드 개발자의 일, 전망, 필요한 지식, 네이버는 어떤 백엔드 개발자를 원하는지까지, 개발자를 꿈꾸는 학생들이 고민할 것들을 답 해두셨다. 백엔드 개발자, 시스템 엔지니어, 머신러닝 엔지니어,,, 아직 뭘 해야할지, 어떤 개발자가 되야할지 모르고 고민하고 있던 중에, 이 칼럼을 읽고, 개발 공부 방향에 느낀게 많아 생각을 정리할겸, 글쓰는 연습도 해볼겸 처음으로 블로그에 내 생각에 대한 글을 쓰게 되었다. 울타리 위에 있다! ( 갈팡질팡하는 모습을 영어로 On the fence라고 표현한다고 한다. 표현이 재밌어 써보고 싶었다.) C언어를 대학교 1학년 때..
이진 분류 ( Binary Classification ) - 적합/부적합, 합격/불합격, 스팸/햄 처럼 2가지 선택지로 분류하는 것을 이진 분류라고 한다. 놀이동산에서 범퍼카를 타려면 키가 126cm 이상이어야 한다고 생각해보자. 그럼 키에 따른 분표는 다음과 같을 것이다. - 이전 선형 회귀에서 본 분표랑은 조금 다르게 생겼다. 그래프는 직선보다는 S에 가깝고, y의 값은 적합, 또는 부적합 두가지 경우만을 갖는다. 적합을 1, 부적합을 0이라고 하면, 예측 값은 0~1 값만을 갖고, 그 모양은 S인 함수를 만들어야 이런 이진 분류를 잘 표현할 수 있을 것이다. - 이런 이진 분류를 풀기 위한 대표적인 알고리즘이 로지스틱 회귀이고, 그 분포를 가장 잘 설명하기 위해 위 조건을 충족하는 함수, 시그모이드..
Optimizer - 선형 회귀 학습은 결국 데이터를 가장 잘 표현할 수 있는 선(단순 선형 회귀 기준으로)을 그리는 과정이다. 그 예측 값과 실제 값의 그 오차를 표현하는 값을 최소화하는 알고리즘이 최적화 알고리즘 / Optimizer 이다. - 기본적인 최적화 알고리즘 중 하나가 경사 하강법이다. Gradient descent - 가설 H(x)=Wx+b에서 편향 b를 제거하고 가중치 W만 생각하여, 가설을 H(x) = Wx라고 하자. 비용 함수는 아래 그래프처럼 2차 함수 형태를 갖을 것이고, 그 값이 최저점이 되는 빨간색 꼭짓점의 W을 찾아야한다. 검정 원 표시는 랜덤하게 정해진 W 값이 점차 목표 W 값에 수렴하는 과정을 표시하였다. 이 과정이 바로 경사 하강법이다. - W값을 움직이는 로직은 비..
Linear Regression - 어떠한 경향을 갖는다. 라는 것에 다음 데이터의 결과를 예측할 때가 많다. 더 많은 시간을 공부에 쓰면 더 좋은 점수를 받더라, 반도체 집적 회로의 성능이 2년에 2배씩 증가하더라. 처럼 기존의 데이터가 어떤 경향을 갖는지를 파악하여, 그럼 8시간 공부한 시험에는 몇 점을 받겠구나, 반도체는 2020년도에 어떤 성능을 갖겠구나 라는 예측을 하게 된다. 이렇게 종족 변수(y)와 독립 변수(x)의 선형 상관 관계를 모델링한 것을 선형 회귀라고 한다. - 독립 변수(x)의 개수에 따라, 1개라면 단순 선형 회귀, 2개 이상이라면 다중 선형 회귀 분석이라고 한다. Hypothesis - 대략 50명 정도 되는 사람의 키와 몸무게를 기록했다고 생각해보자. 해당 집단의 기록은 아..