दूरी-आधारित लर्निंग

Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

Dr. Chris Anagnostopoulos

Honorary Associate Professor

दूरी और समानता

from sklearn.neighbors import DistanceMetric as dm
dist = dm.get_metric('euclidean')

X = [[0,1], [2,3], [0,6]] dist.pairwise(X)
array([[0.        , 2.82842712, 5.        ],
       [2.82842712, 0.        , 3.60555128],
       [5.        , 3.60555128, 0.        ]])
X = np.matrix(X)
np.sqrt(np.sum(np.square(X[0,:] - X[1,:])))
2.82842712
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

Non-Euclidean Local Outlier Factor

clf = LocalOutlierFactor(
    novelty=True, metric='chebyshev')
clf.fit(X_train)
y_pred = clf.predict(X_test)
dist = dm.get_metric('chebyshev')
X = [[0,1], [2,3], [0,6]]
dist.pairwise(X)
array([[0., 2., 5.],
       [2., 0., 3.],
       [5., 3., 0.]])

दो काले क्लस्टर और कुछ अलग-थलग लाल बिंदु।

Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

क्या सभी मेट्रिक्स समान हैं?

Hamming दूरी मैट्रिक्स:

dist = dm.get_metric('hamming')
X = [[0,1], [2,3], [0,6]]
dist.pairwise(X)
array([[0. , 1. , 0.5],
       [1. , 0. , 1. ],
       [0.5, 1. , 0. ]])
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

क्या सभी मेट्रिक्स समान हैं?

from scipy.spatial.distance import pdist

X = [[0,1], [2,3], [0,6]] pdist(X, 'cityblock')
array([4., 5., 5.])
from scipy.spatial.distance import \ 
    squareform
squareform(pdist(X, 'cityblock'))
array([[0., 4., 5.],
       [4., 0., 5.],
       [5., 5., 0.]])
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

वास्तविक-विश्व उदाहरण

Hepatitis डेटासेट:

   Class   AGE  SEX  STEROID    ...      
0    2.0  40.0  0.0      0.0    ...      
1    2.0  30.0  0.0      0.0    ...      
2    1.0  47.0  0.0      1.0    ...      
1 https://archive.ics.uci.edu/ml/datasets/Hepatitis
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

वास्तविक-विश्व उदाहरण

Euclidean दूरी:

squareform(pdist(X_hep, 'euclidean'))
[[  0.  127.   64.1]
 [127.    0.  128.2]
 [ 64.1 128.2   0. ]]
  • 1 का 3 से निकटतम: क्लास गलत

Hamming दूरी:

squareform(pdist(X_hep, 'hamming'))
[[0.  0.5 0.7]
 [0.5 0.  0.6]
 [0.7 0.6 0. ]]
  • 1 का 2 से निकटतम: क्लास सही
Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

और बड़ा टूलबॉक्स

Python में मशीन लर्निंग वर्कफ़्लो डिज़ाइन करना

Preparing Video For Download...