إذا كانت مشكلتك تتعلق بسؤال استخدام ، فأرسله هنا بدلاً من ذلك: - StackOverflow باستخدام علامة scikit-Learn: https://stackoverflow.com/questions/tagged/scikit-learn - القائمة البريدية: https://mail.python.org / mailman / listinfo / scikit-learn لمزيد من المعلومات ، راجع أسئلة المستخدم: http://scikit-learn.org/stable/support.html#user-questions إرشادات لتقديم خطأ: https://github.com/scikit -learn / scikit-learn / blob / master / CONTRIBUTING.md # filing-bugs
نظرًا لمصفوفتي العرض X
و Y
، يجب أن تُرجع CCA المجموعات الخطية n_components
للعناصر الموجودة في X
و Y
' متجهات s ذات الارتباط الأكبر ، أي أن المكون الأول له أكبر ارتباط ، والثاني لديه ثاني أكبر ارتباط في اتجاه غير مرتبط بالعنصر الأول ، إلخ. ومع ذلك ، في الكود التالي ، تكون الأعمدة الثانية واضحة أقل ارتباطًا من الأعمدة الثالثة:
from sklearn.cross_decomposition import CCA
import numpy as np
from scipy import stats
X = [[0.006061109337620652, 0.0392466675239141, -0.04312459861840733], [-0.6652995467596429, 0.2076410843346226, -0.7817536882379651], [-1.4060868112838942, -0.055029478343267685, -1.006415484608637], [-2.170613455952169, -0.15770102997315535, -1.5223958036356375], [-2.895702070412092, -0.20498481413822175, -1.8232022285963847], [-3.687452614812402, -0.543003880524402, -2.2952030829468533], [-4.206168972149556, -0.3365693935548624, -2.841946351795423], [-5.231288268781064, -0.8024321344988571, -3.40532581256557], [-6.095805742721522, -0.9381144689340173, -3.593752186094848], [-6.297988264542059, -0.7231985020991631, -3.9435579269998406], [-7.10897027952524, -0.8639925998765747, -4.264992629284153], [-8.116238092376772, -1.0123970020855437, -4.96858178622968], [-8.969468878952105, -1.0235782019578692, -5.617282941713933], [-9.839359511108077, -1.2819621078971968, -5.8901943190245625], [-10.181936322525571, -0.9904671991812529, -6.240811384647836]]
Y = [[0.032927114749911154, 0.21320841666565743, -0.23427536580450153], [1.431742605643286, 0.23963850202268067, 0.8438745303679628], [2.908798834568648, 0.7357229001312737, 1.325345683629048], [4.438824821921929, 0.9473643810538429, 2.35038560647864], [5.887201894166226, 1.0302756424934638, 2.964806513433767], [7.409049064480012, 1.3070946380395154, 4.347473875547982], [8.51501831350366, 1.3380108570442941, 4.9533251686263275], [10.57244384646805, 2.31627294094068, 6.028949244604159], [12.22872203222364, 2.1165257564864675, 6.923464021607424], [12.664660419747504, 1.8911363532121173, 7.398432173930664], [14.29235367239137, 2.2098221962551343, 8.000538342827351], [16.327977920399373, 2.643183255720207, 9.257671785118596], [18.081288169620517, 2.968898443090926, 10.221747267811098], [19.754046559146662, 3.051682253577557, 11.244435627784393], [20.466418131910004, 2.644933083198568, 11.752014917896375]]
cca = CCA(n_components=3)
cca.fit(X, Y)
X_transformed, Y_transformed = cca.transform(X, Y)
print(X_transformed)
[[ 1.64277244 0.08237031 0.11724683]
[ 1.41457457 -0.11600721 0.07162219]
[ 1.18686358 0.00666119 0.08822118]
[ 0.94070119 -0.02504267 -0.0112954 ]
[ 0.71314666 0.02919558 0.25990473]
[ 0.46246267 0.05607036 -0.16424275]
[ 0.28625435 -0.09546609 -0.02850206]
[-0.03644528 -0.03407977 -0.55790786]
[-0.30127324 0.12266269 -0.12622283]
[-0.37581414 -0.01941656 -0.0343278 ]
[-0.62900674 0.05973748 0.13448604]
[-0.95400947 0.0082079 -0.05487306]
[-1.23214839 -0.07548718 -0.08864002]
[-1.50031366 0.05776429 0.00665019]
[-1.61776455 -0.0571703 0.38788062]]
print(Y_transformed)
[[ 1.64131294 0.01428169 0.11343087]
[ 1.41330957 -0.06169376 0.06929115]
[ 1.18580457 0.04946041 0.0853499 ]
[ 0.9398609 0.01613582 -0.01092778]
[ 0.71251056 0.06356946 0.25144578]
[ 0.46205587 -0.05371303 -0.15889725]
[ 0.28599564 -0.05298207 -0.02757442]
[-0.03641563 0.02220818 -0.53975 ]
[-0.30099795 0.01004611 -0.12211474]
[-0.37547807 -0.063071 -0.03321056]
[-0.62844374 0.02679924 0.13010901]
[-0.95315959 0.0185694 -0.05308714]
[-1.23105629 0.03726576 -0.08575511]
[-1.49897395 0.01483407 0.00643375]
[-1.61632484 -0.04171028 0.37525653]]
العلاقة بين الأعمدة الثالثة X_transfomed
و Y_transformed
هي تقريبًا 1 ، بينما الارتباط بين الأعمدة الثانية هو 0.389 فقط. لذلك ، كنت أتوقع ظهور العمود الثالث في مكان العمود الثاني.
عندما أقوم بتشغيل CCA بـ n_components=2
أحصل على العمودين الأول والثاني ، بينما كان يجب أن أحصل على العمودين الأول والثالث.
Linux-4.13.0-16-generic-x86_64-with-Ubuntu-17.10-artful
Python 3.6.3 (افتراضي ، 3 أكتوبر 2017 ، 21:45:48)
NumPy 1.14.3
SciPy 1.2.0.0 تحديث
Scikit-Learn 0.19.1.1 تحديث
لا أقصد أن أكون وقحًا ولكن ما هو الغرض من ذلك. لماذا تفعل هذا؟
أقوم بذلك من أجل الحصول على المكونات المشتركة بين وجهتي نظر لبعض البيانات.
كيفية تعيين قيمة حدية باستخدام cca