2016년 6월 29일 수요일

파이썬 - kNN 알고리즘 구현에 대한 데모입니다.

k-Nearest Neighbers(k-근접이웃)은 가장 단순한 예측 모델 중에 하나입니다.

아래와 같이 모듈을 임포트 받습니다.

from __future__ import division, unicode_literals
from collections import Counter
import math, random

import matplotlib.pyplot as plt

from linear_algebra import distance
from statistics import mean

from plot_state_borders import plot_state_borders

약간의 예시 데이터를 통해서 분석을 하면 다음과 같이 출력된다.
cities = [(-86.75,33.5666666666667,'Python'),(-88.25,30.6833333333333,'Python'),(-112.016666666667,33.4333333333333,'Java'),(-110.933333333333,32.1166666666667,'Java'),(-92.2333333333333,34.7333333333333,'R'),(-121.95,37.7,'R')

cities = [([longitude, latitude], language) for longitude, latitude, language in cities]

def plot_cities():

    # key is language, value is pair (longitudes, latitudes)
    plots = { "Java" : ([], []), "Python" : ([], []), "R" : ([], []) }

    # we want each language to have a different marker and color
    markers = { "Java" : "o", "Python" : "s", "R" : "^" }
    colors  = { "Java" : "r", "Python" : "b", "R" : "g" }

    for (longitude, latitude), language in cities:
        plots[language][0].append(longitude)
        plots[language][1].append(latitude)

    # create a scatter series for each language
    for language, (x, y) in plots.iteritems():
        plt.scatter(x, y, color=colors[language], marker=markers[language],
                          label=language, zorder=10)

    plot_state_borders()    # assume we have a function that does this

    plt.legend(loc=0)          # let matplotlib choose the location
    plt.axis([-130,-60,20,55]) # set the axes
    plt.title("Very popular language")
    plt.show()
   

plot_cities()


댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

'일론 머스크' '젠슨 황' AI 리더들, 그들의 성공 비결은 바로 이것 - 누가 부자가 되는가 영상입니다. ㅎㅎ

  책을 통해서만 접했던 내용들을 영상으로 보니 더 실감이 납니다. KBS에서 방송된 내용인데 주말에 보시면 좋은 영상입니다. 엔비디아의 주가가 이해가 됩니다. ㅋㅋ 생각보다 미국시장이 강한 것이 AI는 거의 미국과 중국이 주도하는 시장이 되고 있습...