outlier
Outlier
import matplotlib.pyplot as plt from sklearn import datasets from sklearn.manifold import TSNE from sklearn.neighbors import LocalOutlierFactor from matplotlib import offsetbox digits = datasets.load_digits(10) nSamples = len(digits.images) data = digits.images.reshape((nSamples, -1)) numberArchetypes = 10 archetypal = ArchetypalAnalysis(n_components=numberArchetypes, tmax=50, iterations=20) archetypal.fit(data) dataArchetypal = archetypal.transform(data) archetypes = archetypal.get_archetypes() f, ax = plt.subplots(2, 5, sharex='col', sharey='row', figsize=(10, 8)) f.suptitle('Archetypes', fontsize=14) for i in range(2): for j in range(5): ax[i, j].imshow(archetypes[i * 5 + j, :].reshape((8, 8)), cmap='gray_r', interpolation='nearest') plt.show() dataArchetypalWithDummy = np.vstack([np.eye(numberArchetypes), dataArchetypal]) tsne = TSNE(n_components=2) dataArchetypalTSNE = tsne.fit_transform(dataArchetypalWithDummy) _, ax = plt.subplots(figsize=(10, 8)) ax.set_title('TSNE') ax.scatter(dataArchetypalTSNE[numberArchetypes:, 0], dataArchetypalTSNE[numberArchetypes:, 1], c=digits.target, s=6.0, cmap=plt.cm.get_cmap("jet", 10)) for i in range(np.size(archetypes, axis=0)): image = offsetbox.OffsetImage(archetypes[i, :].reshape((8, 8)), cmap='gray_r') imagebox = offsetbox.AnnotationBbox(image, dataArchetypalTSNE[i, :]) ax.add_artist(imagebox) plt.show() clf = LocalOutlierFactor() inlier = clf.fit_predict(dataArchetypalTSNE) neg_outlier_factor = clf.negative_outlier_factor_ fig, ax = plt.subplots(figsize=(10, 8)) ax.set_title('TSNE') s = ax.scatter(dataArchetypalTSNE[:, 0], dataArchetypalTSNE[:, 1], c=neg_outlier_factor, s=6.0, cmap=plt.cm.get_cmap("jet", 10)) fig.colorbar(s) plt.show() print(neg_outlier_factor.argmin())
outlier.txt · 마지막으로 수정됨: 2024/03/23 02:38 저자 127.0.0.1