티스토리 뷰
거리(distance) 개념¶
In [1]:
%pylab inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
In [2]:
s = open('iris.csv').readline()
#header = [i.strip('"') for i in s.strip().split(',')][:-1]
header = s.strip().split(',')[:-1]
header
Out[2]:
In [3]:
labels = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']
iris = np.loadtxt('iris.csv', delimiter=',', skiprows=1, converters={4: lambda s: labels.index(s.decode())})
In [4]:
display(iris.shape, iris[:5])
In [5]:
X = iris[:,:4]
y = iris[:,4]
두 점 간의 거리 계산 공식¶
$$ distance(x_1, x_2) = \sqrt {\sum_{i=0}^{N-1} (x_{1i} - x_{2i})^2},\ N = \#\ of\ features $$
In [8]:
x1 = X[0]
x2 = X[49]
display(x1, x2)
distance = np.sqrt(((x1-x2)**2).sum())
distance
Out[8]:
In [8]:
x1 = x1[:2]
x2 = x2[:2]
display(x1, x2)
plt.plot([x1[0],x2[0]], [x1[1],x2[1]], 'bo--')
plt.axis('equal')
Out[8]:
In [9]:
distance = np.sqrt(((x1-x2)**2).sum())
distance
Out[9]:
한점과 다른 모든 점들 간의 거리 계산¶
In [9]:
distances = []
for i in range(150):
n = np.sqrt(((X[0]-X[i])**2).sum()) # x0 와 X[i] 간의 거리
distances.append(n)
distances
Out[9]:
In [10]:
plt.plot(distances)
Out[10]:
In [11]:
distance = np.sqrt(((X - X[0])**2).sum(axis=1))
distance[:5]
Out[11]:
In [25]:
plt.figure(figsize=[10,4])
plt.plot(distance, 'bo-')
plt.xlabel('samples', fontsize=15)
plt.ylabel('distance', fontsize=15)
plt.xticks(range(0,151,25), [0, 'Setosa', 50, 'Versicolor', 75, 'Virginica', 150])
plt.yticks(range(0,8))
plt.grid()
# plt.vlines([50,100], 0, 10, linestyles='dotted')
plt.title('distances from X[0]', fontsize=20)
Out[25]:
'beginner > 파이썬 머신러닝 기초' 카테고리의 다른 글
지도학습개요 (0) | 2019.02.25 |
---|---|
머신러닝 기초_비용함수 (0) | 2019.02.22 |
머신러닝 기초_iris활용 (0) | 2019.02.22 |
머신러닝과 파이썬 (0) | 2019.02.21 |
Scikit-learn 기초 (0) | 2019.02.20 |