नहीं, यह आवश्यक नहीं है कि यह मामला है, हालांकि, यह एक जटिल तरीके से, टी-एसएनई का लक्ष्य है।
उत्तर के मांस में प्रवेश करने से पहले, आइए गणितीय और सहज रूप से, कुछ बुनियादी परिभाषाओं पर एक नज़र डालें।
निकटतम पड़ोसी : एक मीट्रिक स्पेस और वैक्टर का एक सेट पर , ने एक नया वेक्टर , हम इस तरह के बिंदुओं को खोजना चाहते हैं। सहज रूप से, यह में आदर्श की एक उपयुक्त परिभाषा का उपयोग करके दूरियों का न्यूनतम है ।RdX1,...,Xn∈Rdx∈Rd||X1−x||≤...≤||Xn−x||Rd
अब आ रहा है कि क्या निकटतम पड़ोसी वास्तव में आयामीता में कमी करते हुए बात करते हैं। आमतौर पर मेरे उत्तरों में, मैं गणित, कोड और अंतर्ज्ञान के साथ कुछ को तर्कसंगत बनाने का इरादा रखता हूं। आइए हम पहले चीजों के सहज पहलू पर विचार करें। यदि आपके पास एक बिंदु है जो दूसरे बिंदु से दूरी है, तो t-sne एल्गोरिथ्म की हमारी समझ से हम जानते हैं कि यह दूरी संरक्षित है क्योंकि हम उच्च आयामों में संक्रमण करते हैं। आइए हम आगे यह मानें कि एक बिंदु किसी आयाम में का निकटतम पड़ोसी है । परिभाषा के अनुसार, और में दूरी के बीच एक संबंध हैdyxddd+k। तो, हमारा अपना अंतर्ज्ञान है जो कि दूरी को विभिन्न आयामों में बनाए रखा जाता है, या कम से कम, यही वह है जिसका हम उद्देश्य रखते हैं। आइए इसे कुछ गणित के साथ सही ठहराने की कोशिश करें।
इस उत्तर में मैं t-sne में शामिल गणित के बारे में बात करता हूं, यद्यपि विस्तार में नहीं ( t-SNE: क्यों समान डेटा मान नेत्रहीन रूप से बंद नहीं हैं? )। यहां गणित क्या है, मूल रूप से इस संभावना को अधिकतम कर रहा है कि दो बिंदु अनुमानित स्थान के करीब बने रहे क्योंकि वे मूल स्थान में हैं यह मानते हुए कि अंकों का वितरण घातीय है। तो, इस समीकरण को देखते हुए । ध्यान दें कि प्रायिकता दो बिंदुओं के बीच की दूरी पर निर्भर है, इसलिए आगे वे जितनी अलग हैं, उतनी ही अलग हो जाती हैं, क्योंकि वे कम आयामों के लिए अनुमानित होती हैं। ध्यान दें कि यदि वेpj|i=exp(−||xj−xi||22σ2)∑k≠iexp(−||xj−xi||22σ2)Rk, एक अच्छा मौका है कि वे अनुमानित आयाम में करीब नहीं होंगे। तो अब, हमारे पास गणितीय औचित्य है कि अंक "पास" क्यों रहना चाहिए। लेकिन फिर से, चूंकि यह एक घातीय वितरण है, अगर ये बिंदु काफी दूर हैं, तो इस बात की कोई गारंटी नहीं है कि निकटतम पड़ोसी संपत्ति को बनाए रखा जाता है, हालांकि, यह उद्देश्य है।
अब अंत में एक स्वच्छ कोडिंग उदाहरण है जो इस अवधारणा को भी प्रदर्शित करता है।
from sklearn.manifold import TSNE
from sklearn.neighbors import KNeighborsClassifier
X = [[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]]
y = [0,1,2,3,4,5,6,7,8,9]
neighs = KNeighborsClassifier(n_neighbors=3)
neighs.fit(X, y)
X_embedded = TSNE(n_components=1).fit_transform(X)
neighs_tsne = KNeighborsClassifier(n_neighbors=3)
neighs_tsne.fit(X_embedded, y)
print(neighs.predict([[1.1]]))
>>>[0]
print(neighs_tsne.predict([[1.1]]))
>>>[0]
हालांकि यह एक बहुत ही भोली मिसाल है और जटिलता को प्रतिबिंबित नहीं करती है, यह कुछ सरल उदाहरणों के लिए प्रयोग द्वारा काम करती है।
संपादित करें: इसके अलावा, प्रश्न के संबंध में कुछ बिंदुओं को जोड़ना, इसलिए यह आवश्यक नहीं है कि यह मामला है, यह हो सकता है, हालांकि, गणित के माध्यम से इसे तर्कसंगत बनाने से यह साबित होगा कि आपके पास कोई ठोस परिणाम नहीं है (कोई निश्चित हां या नहीं) ।
मुझे आशा है कि इसने TSNE के साथ आपकी कुछ चिंताओं को दूर किया।