Hello

01 Hadoop 설치

|
  1. 하둡 다운로드
    • http://www.apache.org/dyn/closer.cgi/hadoop/common/
      $ sudo wget "http://apache.mirror.cdnetworks.com/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz"
      $ sudo wget "http://apache.mirror.cdnetworks.com/hadoop/common/hadoop-2.7.4/hadoop-2.7.4-src.tar.gz"
      
  2. 압축 해제
    $ sudo tar -xzvf hadoop-2.7.4.tar.gz
    
  3. 환경 설정
    # cd /usr/local/src/hadoop/etc/hadoop
    # vim hadoop-env.sh
    
export JAVA_HOME=${JAVA_HOME}
# vim ~/.bashrc
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib/native"
#HADOOP VARIABLES END
# source ~/.bashrc

11 Spark ALS Recommender

|

10 Spark MLlib

|

1. 개요

1.1. 관측과 특성

1.2. 레이블

  • 지도학습 방식에서 훈련을 위해 주어지는 데이터 셋에 각 관측 데이터에 대한 올바른 출력값을 알려주는 레이블이라는 값이 포함

1.3. 연속형 데이터와 이산형 데이터

  • 연속형 데이터 : 온도, 무게같은 연속적인 값을 가지는 데이터
  • 이산형 데이터 : 성별, 나이같은 불 연속적인 값을 가지는 데이터

1.4. 알고리즘과 모델

  • 모델 : 알고리즘의 산출물, 알고리즘에 데이터를 적용해서 만들어낸 결과물

1.5. 파라메트릭 알고리즘

파라메트릭

  • 고정된 개수의 파라미터
  • 입력과 출력 사이의 관계를 특성 값에 관한 수학적 함수로 가정하고, 그 결과값이 실제 결과값에 가까워 지도록 파라미터를 조정하는 방법
  • 선형회귀, 로지스틱회귀 알고리즘

넌파라메트릭

  • 머신러닝의 수행결과를 그대로 사용하는 방식
  • 서포티드 벡터머신 알고리즘, 나이브 베이즈 알고리즘

1.6. 지도학습과 비지도학습

  • 지도 학습 : 훈련데이터에 레이블(정답에 관한 정보)가 포함
  • 비지도 학습 : 레이블이 포함되지 않은 학습법

1.7. 파이프라인

  • 여러종류의 알고리즘을 순차적으로 실행할 수 있게 해주는 API

2. 알고리즘

2.1. Tokenizer

  • 공백 문자를 기준으로 입력 문자열을 개별 단어의 배열로 변환하고, 이 배열을 값으로 하는 새로운 칼럼을 생성하는 트랜스포머

2.2. TF-IDF(Term Frequency - Inverse Document Frequency)

  • 문서 집합에서 특정 단어가 특정 문서내에서 가지는 중요도를 수치화한 통계
  • TF(단어빈도)와 IDF(문서빈도)의 조합으로 결정

2.3. StringIndexer, IndexToString

  • StringIndexer : 문자열 칼럼에 대응하는 숫자형 칼럼을 생성하는 평가자
  • IndexToString : 인코딩 결과를 우너래 문자열로 되돌려주는 트랜스포머

3. 회귀와 분류

3.1. 회귀

3.2. 분류

로지스틱 회귀

의사결정 트리

랜덤포레스트

다층 퍼셉트론 분류자

One-vsRest classifier

나이브 베이즈

  • 독립 변수에 해당하는 각 특성들이 서로 독립이라는 가정하에 분류를 수행하는 방법

4. 클러스터링

4.1. K-means

4.2. Gaussian Mixture Model

5. 협업 필터링

5.1. ALS(alternating least squares)

05 Mahout 데이터 모델

|

1. File Data Model

데이터 불러오기

데이터 갱신

새로고침

  • 메인 데이터 파일이 갱신하고 새로고침을 하면 파일 전체를 새로 읽음

파일업데이트

  • 변경된 부분만 처리
  • 메인 데이터 파일과 같은 디렉터리에 위치하고 점이 나오기전까지 같은 접두사인 파일이 있을경우
    • 메인 데이터 파일 : data.csv
    • 업데이트 데이터 파일 : data.1.csv
  • 선호 추가 혹은 변경
userId, itemId, pref
  • 기존 선호 삭제
userId, itemId,

2. Database Data Model

RDBMS

  • MySQL, PostgreSQL
  • File Data Model에 비해 현저히 느림

JNDI를 이용한 설정

<Resource 
    name="jdbc/taste"
    auth="Container"
    type="javax.sql.DataSource"
    username="user"
    password="password"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/mydatabase"
/>

DataSource Library를 이용한 설정

MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setServerName("database_host");
dataSource.setUser("user");
dataSource.setPassword("password");
dataSource.setDatabaseName("database_name");

JDBCDataModel dataModel = new MySQLJDBCDataModel(dataSource, "pref_table", "user_column", "item_column", "pref_column"); 

DB 설정 및 최적화

  • 스키마 : userid(bigint), itemid(bigint), rating(float), timestamp(timestamp)
  • userid, itemid 컬럼은 indexing 되어 있어야 하고 PK여야 한다
  • MySQL Connector/J 드라이버를 사용할 경우 cachePrepareStatements를 TRUE로 설정
  • 버퍼와 쿼리캐시를 튜닝

NoSQL DBMS

  • MongoDB

02 TripAdvisor API ContentAPI

|

1. Content API 제공 정보

  • API KEY 신청 URL : https://www.tripadvisor.com/APIAccessSupport
  • 기본적으로 호텔, 식당, 명소에 대한 정보를 함께 제공
  • 제공 상세 정보들
    • Location ID, name, address, latitude, longitude
    • Read reviews link, Write a review link
    • 전체 평점, 순위, 상세 평점, 수상 이력, 리뷰 개수, 평점 이미지
    • 가격대 마크, 숙박 시설 카테고리 & 상세 카테고리
  • 개발 프로세스
    1. 개발용 API 신청(심사 후 승인, 서비스 URL 필요)
    2. 승인
    3. 개발용 API_KEY 제공
    4. 개발
    5. 서비스 런치 신청
    6. 운영용 API_KEY 제공

2. 화면에 표시해야 하는 사항

  • 무료로 API를 사용하는 댓가로 TripAdvisor에서 요구 하는 링크와 로고를 보여주어야함.

3. Technical Overview

  • 개발용 API KEY 제공 (초당 요청 30회, 일간 요청 1,000회 제한)
  • 개발완료후 서비스 승인이 되면 운영용 API KEY로 전환(일간 요청 10,000회 제한)
  • TripAdvisor에서는 API 응답 결과를 24시간동안 캐싱할 것을 추천함(파라미터로 자동 캐싱 키 제공)
  • API KEY 보안에 각별히 신경 쓸것 (특히 클라이언트 단에서 요청 할때)
  • Response Data Type : JSON

4. Content API 목록

  • Request URL Example : http://api.tripadvisor.com/api/partner/2.0/location/155507?key=”API KEY”

  • 제공 API

구분 Parameter Reponse
/location TripAdvisor location ID 장소이름, 주소, 평점, 리뷰갯수, 리뷰 조회 링크, 리뷰 작성 링크, 그밖의 정보
/location_mapper 위도, 경도, (장소이름) TripAdvisor location ID
  • location_mapper를 통해 해당 장소에 대한 location ID를 얻어온 후에 location을 통해 정보를 조회

5. Content API 응답 데이터

5.1. Business Content

  1. 설명

    • POI(Points of Interest : 호텔, 식당, 관광지)에 대한 정보
  2. 응답 데이터 목록

  • 기본 데이터
항목 설명
location_id 장소 고유 ID
name 장소명
location_string 지역명
num_reviews 리뷰 개수
photo_count 사진 개수
price_level 통화 단위
  • Address and Geocoding(주소 및 좌표)
항목 설명
address_obj 주소, 우편번호
logitude 경도
latitude 위도
ancestors 상위 주소(도시, 주, 국가)
  • Popularity Ranking(지역 평점 랭킹)
항목 설명
raking_data 지역 평점 랭킹 정보
  • Bubble Ratings & Percent Recommended(총 평점 및 평점 이미지)
항목 설명
rating_image_url 전체 평점 이미지 URL
rating 전체 평점
  • Subratings(항목별 평점)
    • 위치, 숙박, 방, 서비스, 가치, 청결도
  • Review Count and Breakdowns(리뷰 평점 분포도, 태그 정보 분포도)
항목 설명
review_rating_count 리뷰 평점 분포도
trip_type 태그 정보 분포도
  • Category, Subcategories, Groups, and Types
항목 설명
category 큰 카테고리(hotel)
subcategory 세부 카테고리(b&b)
  • Cuisines(식당 카테고리만 해당)

  • Award Content

항목 설명
awards 수상 항목 표시
  • Links to TripAdvisor(TripAdvisor 링크)
항목 설명
web_url 트립어드바이저 해당 장소 링크
write_review 리뷰 작성 링크
see_all_photos 사진 링크
  • Images
    • 트립 어드바이저 평점 이미지

5.2. Destination Content

  • 설명
    • 지역에 관한 정보
  • 데이터 목록
  • 기본 데이터
항목 설명
location_id 지역 고유 ID
name 지역명
abbrv 지역명 약어
location_string 일반적으로 쓰는 지역명
  • Address and Geocoding
항목 설명
address_obj 주소, 우편번호
logitude 경도
latitude 위도
ancestors 상위 주소(도시, 주, 국가)
  • Category Counts
항목 설명
category_counts 지역이 포함된 호텔, 식당, 명소 카운트
  • Categories, Subcategories, and Types
항목 설명
category 큰 카테고리(geographic)
subcategory 세부 카테고리(city)
geo_type narrow, broad, hybrid
  • Award Content
항목 설명
awards 수상 항목 표시
  • Links to TripAdvisor(TripAdvisor 링크)
항목 설명
web_url 트립어드바이저 해당 장소 링크
see_all_photos 사진 링크
see_all_restaurants 지역 식당 링크
see_all_attractions 지역 명소 링크
see_all_hotels 지역 호텔 링크

6. 지원 언어