मैं scikit-learn
मशीन लर्निंग लाइब्रेरी (Python) से रैखिक डिस्क्रिमिनेटर एनालिसिस (LDA) का उपयोग आयामी कमी के लिए कर रहा था और परिणामों के बारे में थोड़ा उत्सुक था। मैं अब सोच रहा हूं कि एलडीए क्या scikit-learn
कर रहा है ताकि परिणाम अलग दिखें, उदाहरण के लिए, आर में किया गया एक मैनुअल अप्रोच या एलडीए। अगर कोई मुझे यहां कुछ जानकारी दे सके तो बहुत अच्छा होगा।
मूल रूप से जो सबसे अधिक चिंतित है वह यह है कि scikit-plot
दो चर के बीच एक संबंध दर्शाता है जहां एक सहसंबंध होना चाहिए 0।
एक परीक्षण के लिए, मैंने आइरिस डेटासेट का उपयोग किया और पहले 2 रेखीय विभेदकों को इस तरह देखा:
आईएमजी-1। LDA scikit-learn के माध्यम से
यह मूल रूप से मैं scikit-learn प्रलेखन में पाए गए परिणामों के अनुरूप है।
अब, मैं कदम से एलडीए कदम के माध्यम से चला गया और एक अलग प्रक्षेपण मिला। मैंने यह जानने के लिए विभिन्न तरीकों की कोशिश की कि क्या हो रहा था:
आईएमजी-2। कच्चे डेटा पर एलडीए (कोई केंद्र नहीं, कोई मानकीकरण नहीं)
और अगर मैं पहले मानकीकृत (z- स्कोर सामान्यीकरण; इकाई विचरण) डेटा पहले चरण-दर-चरण दृष्टिकोण होगा। मैंने केवल मीन-सेंटरिंग के साथ एक ही काम किया, जो एक ही सापेक्ष प्रक्षेपण छवि (और जो वास्तव में किया था) के लिए नेतृत्व करना चाहिए।
आईएमजी-3। मीन-सेंटरिंग, या मानकीकरण के बाद चरण-दर-चरण LDA
आईएमजी-4। LDA R में (डिफ़ॉल्ट सेटिंग्स)
IMG-3 में LDA, जहां मैं डेटा केंद्रित करता हूं (जो कि पसंदीदा तरीका होगा) ठीक उसी तरह दिखता है, जैसा कि मैंने पोस्ट में किसी ऐसे व्यक्ति से पाया था जिसने एल में आर किया था।
संदर्भ के लिए कोड
मैं यहां सभी कोड पेस्ट नहीं करना चाहता था, लेकिन मैंने इसे IPython नोटबुक के रूप में अपलोड किया है, जो कि एलडीए प्रोजेक्शन के लिए मेरे द्वारा उपयोग किए गए (नीचे देखें) कई चरणों में टूट गया है।
- चरण 1: डी-डायमेंशनल वैक्टर m i = 1 की गणना करना
चरण 2: स्कैटर मैट्रिसेस का कम्प्यूटिंग
2.1 भीतर स्तरीय बिखराव मैट्रिक्स निम्नलिखित समीकरण द्वारा गणना की जाती है: एस डब्ल्यू = ग Σ मैं = 1 एस मैं = ग Σ मैं = 1 n Σ एक्स ∈ डी मैं
2.2 के बीच स्तरीय बिखराव मैट्रिक्स निम्नलिखित समीकरण द्वारा गणना की जाती है: एस बी = सी Σ मैं = 1 n मैं ( मीटर मैं - मीटर ) ( मीटर मैं -
चरण 3. मैट्रिक्स लिए सामान्यीकृत आइगेनवेल्यू समस्या का समाधान करना
3.1। आईजेनवैक्टरों को सॉर्ट करके ईजेनवेल्यूज घटाना
3.2। सबसे बड़े eigenvalues के साथ k eigenvectors चुनना । दो eigenvectors को उच्चतम digenvalues के साथ जोड़कर हमारे का निर्माण करते हैं