Preparation for ML on Python

I am going to introduce basic ML(Machine Learning) implementation by Python.
In this article, I introduce basic similarity, cosine similarity, and basic distance, euclidean distance.
the sample code is below…

#! usr/bin/env python
# -*- coding: utf-8 -*-

def simcos(D, l):
    import numpy
    v1 = numpy.array(D[l[0]], dtype=float)
    v2 = numpy.array(D[l[1]], dtype=float)
    return numpy.sum(v1*v2) / (numpy.sqrt(numpy.sum(v1*v1))*

def euclidean_distance(D, l):
    import numpy
    x = D[l[0]]
    y = D[l[1]]
    if type(x) is list:
        x = numpy.array(x)
    if type(y) is list:
        y = numpy.array(y)
    return numpy.sqrt(numpy.sum((x-y)*(x-y)))

def argmax(l, k, f):
    def c(i, a):
        fs = frozenset(a)
        if len(fs) == k:
        for j in range(i, n):
            c(i+1, a)
    n = len(l)
    C = set()
    c(0, list())#組合せ作成
    max = -float('inf')
    maxcomb = None
    for i in C:#iは基数kのフローズンセット
        i = list(i)
        val = f(D, i)
        print i, val
        if val > max:
            max = val
            maxcomb = i
    return maxcomb

import numpy

print numpy.random.random_sample(2)
print numpy.random.random_sample(3)
print ""

print u"cos類似度"
x = numpy.random.random_sample(3)
y = numpy.random.random_sample(3)
print "x:", x
print "y:", y
print simcos([x, y], [0, 1])
print ""

print u"ユークリッド距離"
#x = numpy.array([1., 1.])
#y = numpy.array([0., 0.])
print "x:", x
print "y:", y
print euclidean_distance([x, y], [0, 1])
print ""

N = 3
d = 3
D = []
for i in range(0, N):
for i, j in enumerate(D):
    print i, ":", j

#argmax([1, 2, 3], 2, 2)
print argmax(D, 2, simcos)

print argmax(D, 2, euclidean_distance)


notes: in this code, the comments are written by Japanese.
the arguments of the functions that calculate the similarity is list, because of the versatility.


以下に詳細を記入するか、アイコンをクリックしてログインしてください。 ロゴ アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中