kNN (k-Nearest Neighbor) 알고리즘

k-NN 알고리즘은 분류 알고리즘의 하나로 로직이 간단하여 구현하기 쉽다. 하지만 학습 모델이 따로 없고, 전체 데이터를 스캔하여 데이터를 분류하기 때문에 데이터의 양이 많아지면 분류 속도가 현저하게 느려진다. k-NN 알고리즘은 단순 분류 작업 이외에도 협업 필터링을 구현 할 때 사용되기도 한다 (참고: https://github.com/guymorita/recommendationRaccoon). 관련 키워드: kNN, 분류, 기계학습, ...

추천 알고리즘 구현하기 (User-based Collaborative Filtering)

추천 시스템은 보유하고 있는 데이터에 따라 다양한 방법으로 접근하여 구현이 가능하다. 아마존, 넷플릭스와 같이 사용자의 행위 데이터를 분석하여 맞춤형 추천이 가능하고, 뉴스 데이터 등의 텍스트 데이터의 내용을 분석하여 유사도 계산을 통해 추천하는 것도 가능하다. 이 글에서는 추천 시스템의 종류에 대한 소개와 협업 필터링을 통해 간단한 추천 알고리즘을 소개한다. 관련 ...

Javascript Promise 객체 활용 – Value 처리

Javascript 코딩을 할 때 Promise를 사용하여 비동기 함수를 체계적으로 활용 할 수 있다. Promise를 잘 사용하면 Async 보다 깔끔하게 코드 정리가 가능하다. 예제 코드는 여기에서 확인 할 수 있다. Promise 객체 new Promise()를 선언할 때 지시된 함수가 실행되기 때문에 Promise 객체는 함수로 Wrapping 하여 사용한다. 'use strict' let add = (arg1, arg2)=> new Promise((resolve)=> { setTimeout(()=> { console.log('add ...

Docker 시작하기

참고자료: https://docs.docker.com/engine/getstarted/step_four Docker는 VMWare 등과 같은 운영체제 가상화 프로그램이다. docker가 설치되어있다면 개발 환경을 설정할 필요 없이 이미지를 통해 설치하여 바로 실행이 가능하기 때문에 서버 운영, 웹 어플리케이션 배포 등을 간편히 해준다. 최근 Saturn이라는 Web IDE를 개발하면서 쉽게 배포하기 위해 Docker를 사용해보았는데, 프로그래밍 교육용 프레임워크 ...

How to Manage Visitor Log in Express.js

example code in here Overview Pre Install lwot saturn Define Libraries // visitor count example // use '127.0.0.1:port' for this app // this app didn't save log, if you want to maintain the log, you must have to save the log as file or database. const moment = require('moment'); const express = require('express'); const expressLess = require('express-less'); const jade = require('jade'); const app = express(); // express middleware const session = require('express-session'); const ...

MySQL Random Data Selection from Table

In this article, introduce how to extract random data effectively from MySQL table. Many solutions in stackoverflow are very slow or inefficient. Select Random Id SELECT ROUND(RAND()*(SELECT COUNT(*) FROM table_name)) AS id; At first, we can create random id which is in your table table_name. Select Random Id List And then, by using this, SELECT ROUND(RAND()*(SELECT COUNT(*) FROM table_name)) AS id FROM table_name LIMIT 100; We can get 100 random id from this SQL. If you want to get ...

Mecab 형태소 분석기 설치 및 Node.js mecab-ffi

Mecab 설치 Download 경로 - https://bitbucket.org/eunjeon/mecab-ko/downloads - https://bitbucket.org/eunjeon/mecab-ko-dic/downloads 위의 다운로드 경로에서 mecab 라이브러리와 한국어 사전의 최신버전을 다운받아 압축을 푼다. $ wget https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz $ wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.0.1-20150920.tar.gz $ tar xvf mecab*.tar mecab-ko build $ cd mecab-[version] $ ...