본문 바로가기
728x90
반응형

전체 글190

최적화 예제_단체여행 이 장에서는 한 문제에 대한 수백만의 가능한 해답 중 최적 해답을 찾도록 설계된 최적화 알고리즘을 소개한다. 이 알고리즘의 다양한 사용법이 같은 지역을 여행하는 단체 여행객이 최적의 비행편을 찾는 문제와 학생들을 기숙사에 배치하는 가장 좋은 방법 그리고 최소의 교차점을 가지는 네트워크 배치 문제를 통해 소개한다 ~ 통계적 최적화(statistics optimization)란 기법을 사용해서 협업 문제를 해결하는 방법에 대해 살펴볼 예정이다. 최적화는 여러 다른 해답을 시도하고 결과 품질을 판단한 후 해답에 점수를 매겨 특정 문제에 대한 최적의 해답을 찾는다. 최적화는 너무 많은 해답을 가지고 있어 전부 시도해 보기 어려운 경우에 일반적으로 사용된다. -단체 여행 예제 여러 다른 장소에서 출발하여 같은 목.. 2020. 1. 1.
PageRank 이 장에서는 입력 받은 단어로 문서들을 찾아주고, 단어들에 가장 연관도가 높은 순으로 결과를 정렬하는 전문 검색엔진을 다룬다. 전문 검색에 사용하는 알고리즘들은 집단 지성 알고리즘 중에서 제일 중요한 것들에 해당되고, 이 분에에서 새로운 아이디어로 많은 갑부들이 탄생했다고 한다... 많은 사람들은 구글이 연구 프로젝트에서 세장에서 제일 인기 있는 검색엔진으로 초고속 성장한 이유가 페이지랭크 알고리즘에 있다고 믿는다. 1. 검색엔진이란? : 검색엔진을 만드는 첫번째 단계는 문서 수집 방법을 개발하는 것이다. 크롤링이나 기업 인트라넷과 같이 고정된 문서 컬렉션으로 시작하는 경우가 있다. 문서들은 모은 후 색인을 하는데 이 때 여러 다른 단어들의 위치와 문서들을 담는 큰 테이블을 만드는 과정이 포함된다. 어떤.. 2020. 1. 1.
군집분석 계층적 군집화 계층적 방법 개체간 거리를 계산한 후 비슷한 개체를 군집화함 병합: n개의 군집들을 가지고 시작해서 최종적으로 하나의 군집이 남을 때까지 순차적으로 유사한 군집들을 병합한다. 계층적 방법은 적은 수의 데이터를 다루기에 설명력이 좋아 유리하고, 또 군집 개수를 먼저 지정해줄 필요가 없지만 계산량이 너무나 많기 때문에 현업에서는 k-means 방법을 많이 사용한다고 한다. 계층적 군집분석은 단일연결법, 완전연결법, 평균연결법 등이 있지만 단일연결법(최단거리)에 대해서만 간단하게만 보고 넘어가고, 비계층적 군집분석의 k-means 방법에 대해 알아본다. 유투브 이상철 교수님의 영상에 있는 예시를 토대로 하였다. 아래의 표는 일단 개체 간의 거리를 미리 구해놓은 행렬이라고 보면 된다. 우선 계층적.. 2019. 12. 31.
구매 데이터를 활용한 사용자 군집화 제 6회 엘포인트 데이터를 가지고 추천을 적용할 아이디어를 만들어 보기 위해 사용자 간의 구매패턴을 활용하여 유사 사용자 군집화를 공부해 보려고 한다. 데이터 분석에 이렇게 투자하고 그 가치를 널리 공유함에 있어서 기업들의 이런 활동들은 늘 감사할 따름이다...ㅠ 우선 주어진 데이터를 잘 병합하고, 분석하기 쉬운 형태로 변형시켜주도록 하겠다. 1. 사용할 데이터. 우선 아래의 데이터는 온라인 행동 정보 데이터이다. 한단계 밑에 거래 정보 데이터의 BIZ_UNIT 과 비교해보면 A03이라는 카테고리로만 이루어져 있기 때문에 A03은 온라인을 나타내는 카테고리이며, 온라인 행동 정보 데이터의 가장 마지막 14번째 변수 기기유형을 통해 디바이스의 종류를 알 수 있다. 우선 사용자 군집화를 만들기 위한 것이 목.. 2019. 12. 29.
지도/비지도 학습 /단어 벡터 이번 3장에서는 2장의 아이디어를 이용하여 유사항목을 가진 그룹을 자동으로 검출하는 군집 기법 2개를 소개한다. 즉, 인기 블로그 집합에서 그리고 소셜 네트워킹 웹 사이트로부터의 사람들의 요구에서 그룹을 찾기 위해 군집을 사용하는 방법을 보여준다. 지도/비지도 학습 지도 학습: 정답 값을 가진 데이터를 토대로 입출력을 사용하여 새로 주어진 데이터에 대한 답을 찾도록 학습하는 방법. 신경망, 결정트리, SVM, 베이지안 필터링 등. 비지도 학습: LABEL값이 주어지지 않고, 데이터 집합 내에서 구조를 발견하는데 의의가 있는 학습 방법. 군집 알고리즘. 단어 벡터 군집용 데이터를 준비하는 일반적인 방법은 항목 비교에 사용될 숫자 특성들의 공통집합을 결정하는 것이다. 예컨데 2장에서 평론가의 평가점수를 영화.. 2019. 12. 29.
무비렌즈(MovieLens) 데이터 셋을 활용한 추천 시스템 영화 평가에 대한 실제 데이터셋인 무비렌즈를 살펴본다. 무비렌즈는 미네소타 대학의 그룹렌즈(FroupLens)프로젝트에 의해 개발되었다. https://grouplens.org/datasets/ 사이트에서 데이터를 다운받을 수 있다. tar.gz나 zip포맷 중에 하나를 골라서 100,000개의 데이터셋을 다운 받는다. 이 영화 평점데이터는 보니까 imdb 사이트에 있는 자료를 바탕으로 수집이 된 것으로 보여진다. 나는 위 그림처럼 10만개의 데이터셋을 다운 받았다. zip을 받았다. 압축을 풀면 u.item과 u.data가 있는데 모두 data파일로 되어 있어서 나는 편하게 하기 위해서 txt파일로 옮겨서 불러와 사용하였다. 파일을 각각 아이템에 관한 내용과 평점에 관한 데이터이다. 다음의 코드를 통해.. 2019. 12. 29.
항목 기반 필터링/추천 생성 모든 사용자들이 평가한 랭킹 정보 데이터가 있어야 추천 엔진을 구현할 수 있었다. 이는 수천 명의 사람이나 항목이 있을 땐 잘 동작할 것이다. 하지만 아마존과 같은 매우 큰 사이트의 경우에는 수백만의 고객과 제품이 있어서 연산량도 많아지고 느려지게 될 것이다. 그리고 사람 간의 중첩도 거의 없어서 어떤 사람들이 유사한지 결정하기가 까다로워 진다. 지금까지 알아본 것은 '사용자 기반 협력 필터링(user-based collaborative filtering)이다. 이밖에 항목 기반 협력 필터링(item-based collaborative filtering)이라는 방법도 있다. 매우 큰 데이터 셋을 다룰 때 항목 기반 협력 필터링 방법이 더 좋은 결과를 낼 것이다. 이 기법은 추천이 필요한 사용자에게 더욱 .. 2019. 12. 29.
제품 매칭 지금까지는 유사한 사람을 찾는 방법과 한 사람에게 제품들을 추천하는 방법을 보았다. 이제부터는 한 제분과 다른 제품이 얼마나 비슷한지 살펴본다. 이런 기능은 쇼핑몰에 자주 방문하지 않는 사람들에게 제공한다. 예컨데 아마존 웹페이지가 있다. 특정 물건을 좋아한 사람들이 좋아한 다른 것들을 살펴보아 유사도를 구한다. 이것은 앞에서 두 사람 간의 유사도를 측정한 방식과 동일한 방법이다. 단지, 사람을 물건으로 대치하면 된다. 딕셔너리 형태를 변경하면 전에 사용했던 방법과 동일하게 적용할 수 있다. {'Lisa Rose':{"Lady in the Water":2.5, "Snakes on a Plane":3.5}, 'Gene Seymour':{'Lady in the Water':3.0,'Snakes on a Pl.. 2019. 12. 28.
카카오톡 대화 내용 빈도 분석2 지난번에 카톡 대화 내용에서 명사랑 술어만 뽑아서 빈도분석해서 나열했는데, 이번에는 그러한 단어들을 임베딩해서 단어간의 유사도를 측정해보도록 한다. 사용할 기법은 워드투벡이고 2차원 그래프로 도식화하는 것 까지만 할 예정이다. word2vec같은 경우는 파라메타 값을 달리주면 결과도 살짝씩 다르게 나오기 때문에 원하는(?) 보기좋은 결과를 얻기 위해 몇번 반복할 것을 추천한다. 함수가 아닌 코드로 해도 오래 안걸려서 그냥 생코드로 올렸다. 먼저 지난번과 같은 데이터를 쓸거기 때문에 지난번 함수에서 전처리하고 2자리 이상되는 단어를 추출한 그 시점부터 시작했다. 아래의 코드를 실행하면 데이터를 얻을 수 있다. def conversation(path, file): # 모듈 import os import re.. 2019. 12. 26.
728x90
반응형