[error] (run-main-0) java.nio.charset.MalformedInputException: Input length = 1

java.nio.charset.MalformedInputException: Input length = 1

        at java.nio.charset.CoderResult.throwException(CoderResult.java:281)

        at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)

        at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)

        at java.io.InputStreamReader.read(InputStreamReader.java:184)

        at java.io.BufferedReader.fill(BufferedReader.java:161)

        at java.io.BufferedReader.readLine(BufferedReader.java:324)

        at java.io.BufferedReader.readLine(BufferedReader.java:389)



위와 같은 에러가 발생했다면 다음 설정을 .bashrc에 추가해주자.


export JAVA_OPTS="-Dfile.encoding=UTF-8"



CRISP-DM

  • CRoss-Industry Standard Process for Data Mining
  • 초보자나 전문가가 비즈니스 전문가와 함께 모형을 만들어 내는 포괄적인 데이터 마이닝 방법론/프로세스


CRISP-DM 프로세스는 일반적인 오류를 줄이고 다음과 같은 이점을 제공함

  • 비즈니스 문제 인식 및 해결을 위한 데이터 마이닝 프로세스 명료화
  • 데이터 탐색 및 이해
  • 데이터를 통한 문제 인식 및 해결
  • 데이터 마이닝 기법 적용
  • 비즈니스 상황에 따른 데이터 마이닝 결과의 해설
  • 데이터 마이닝 결과의 전개 및 유지


CRISP-DM 프로세스

  • Business Understanding
  • Data understanding
  • Data prepation
  • Modelding
  • Evaluation
  • Deployment


CRISP-DM 홈페이지

원문: http://blog.naver.com/yoonsunh/20034885744


CRISP-DM 모델

  1. 비즈니스 이해(Business Understanding)
    • 프로젝트 목적 이해
    • 지식을 데이터 마이닝 문제 정의를 위해 전환
    • 목적 달성을 위한 예비 계획 수립
  2. 데이터 이해(Data Understanding)
    • 초기 데이터 수집
    • 데이터 파악
    • 데이터 품질 확인
    • 데이터 통찰력 발견
    • 데이터 탐색
  3. 데이터 준비(Data Preparation)

  4. 모델링(Modeling)
  5. 평가(Evaluation)
  6. 배포(Deployment)



원문: http://www.comworld.co.kr/news/articleView.html?idxno=14271




추천시스템 - 대상자가 좋아할 만한 무언가를 추천하는 시스템


활용사례

  • 아마존 
    • 평점, 구매행위, 검색행위 정보들을 이용해 상품 추천시스템을 운영
  • 넷플릭스
    • 사용자의 성향을 파악해 좋아할 만한 영화 추천
    • 사용자가 로그인 하는 순간 해당 사용자의 취향에 맞춰 전체 페이지가 구성되는 수준까지 발전
  • 페이스북
    • 상품이나 뉴스 추천이 아니라 친구 추천을 하는데 활용
    • 친구 추천은 교류를 증대 시킬 목적을 가지고 있기 때문에 Link Prediction이라는 것에 중점을 둠

추천시스템 주요기술

  • 협업 필터링
    • A라는 사람이 부산행이라는 영화를 좋아하면, A와 성향이 비슷해 보이는 B라는 사람 역시 부산행을 좋아할 것이라는 생각을 활용한 방법
    • 거의 모든 추천시스템에서 활용
    • 유유상종의 대상이 무엇이냐에 따라 2가지 방식으로 나뉘어짐
      • 사용자기반 협업 필터링
        • 유사한 성향을 가진 사람들을 구분하고, 해당 성향의 사람들이 좋아하는 것을 추천하는 방식
        • 피어슨상관계수
      • 아이템기반 협업 필터링
        • 아이디어는 동일하지만 사람이 아닌 아이템으로 대치된 것이다. 
        • 코사인유사도
    • 2가지 기술의 장점: 구현이 간단하고 이해하기 쉽다
    • 단점: 정보가 많지 않은 경우 예측의 정확도가 높지 않다.
  • 모델 기반 협업 필터링
    • 머신러닝을 이용해 평점을 예측할 수 있는 모델을 만드는 방식
    • 의사결정트리, SVM 등의 머신러닝 알고리즘을 이용해 평점예측모델을 만든다.

평가방법

  • 사용자 평가
    • 특정한 시점에 사용자를 초청해 추천시스템의 성능을 점검해 보는 것
    • 사용자들로부터 피드백을 받는다.
  • 온라인 평가
    • 추천시스템이 실제 환경에서 활용되고 있는 상황에서 사용자가 보여주는 행위를 보고 성능을 평가하는 방식
    • A/B 테스팅을 이용해 추천시스템의 성능을 평가한다.
  • 오프라인 평가
    • 과거의 데이터를 이용해 평가하는 방식
    • 데이터 기반의 평가이기 때문에 사용자를 초청할 필요가 없다. 


원문: http://www.oss.kr/oss_repository14/658203


노트7 소셜 반응 분석(제플린 사용)

원문: http://bcho.tistory.com/1138


데이터 스튜디오는 쿼리 사용이 불가능

상세 분석에는 노트북 계열의 어플리케이션을 써야함


제플린 설치하면 다음 prefix로 사용가능

%bigquery.sql


노트7 소셜 반응 분석 구현하기

원문: http://bcho.tistory.com/1137


실시간 분석 애플리케이션 개발

트위터 피드 분석

솔루션 아키텍처

  • twitter 
  • fluentd - 특정 키워드 기반 twitter 피드 수집
  • Pub/Sub - 피드 저장
  • DataFlow - 필요한 데이터 필터링후 Google NLP API 사용
    • Google NLP API - 명사와 형용사 분리
  • BigQuery - 30초 sliding window로 명사, 형용사 카운트를 빅쿼리에 저장
  • DataStudio





화면이 깨지는 경우 인코딩 조절방법


mc를 설치해서 실행해봤더니 특수문자가 깨져나왔다. 

검색을 해보니 다음과 같이 실행하면 깨져보이지 않는다. 


$ LC_ALL=en mc


그래서 .bashrc에 alias를 걸어서 항상 위와 같이 실행되도록 하였다. 


alias mc='LC_ALL=en mc'


참고: http://serverfault.com/questions/475925/how-to-fix-putty-showing-garbled-characters



디렉토리 이동이 많은 경우 이전 디렉토리 혹은 특정 위치를 기억해 뒀다가 이동해야 하는 경우가 있다.

다음 커맨드로 커버 가능하다.

  • 바로 이전 디렉토리로 이동: cd -
  • 현재 디렉토리를 저장: pushd .
  • push한 디렉토리로 이동: popd


참고: http://superuser.com/questions/113219/go-back-to-previous-directory-in-shell

El Capital 사용중에 가끔 사용중에 팬 소음이 엄청 심해져서 

어떤 프로세스가 CPU를 많이 잡아먹나 봤더니 mdworker였고 이 프로세스는 Spotlight 검색에서 띄운 것이었다.

MacOS Sierra로 업그레이드 해도 마찬가지여서 다음 커맨드로 아예 서비스를 내려버렸다. 

그랬더니 팬 소음이 최저로 내려갔다. peace~


Spotlight 해제하기

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist


혹시나 마음이 바뀌어서 기능을 키고 싶다면 다음과 같이 하면 된다.

      sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist



참고: http://forums.macrumors.com/threads/mdworker-process-100-deleting-it-with-terminal.1718772/


confluence가 동작을 안해서 보니 기존 옵션이 1.8에서는 먹히지 않았다. 

그래서 버전을 1.7로 돌려야 하는데 다음 쉘스크립트를 사용하여 해결했다.


function setjdk() {

  if [ $# -ne 0 ]; then

   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'

   if [ -n "${JAVA_HOME+x}" ]; then

    removeFromPath $JAVA_HOME

   fi

   export JAVA_HOME=`/usr/libexec/java_home -v $@`

   export PATH=$JAVA_HOME/bin:$PATH

  fi

 }

 function removeFromPath() {

  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")

 }

setjdk 1.7




참고:

https://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/



+ Recent posts