की म्यूचुअल जानकारी मेरे पास एक वर्ग मैट्रिक्स है जो डेटा सेट में सह-घटनाओं की आवृत्ति गणना का प्रतिनिधित्व करता है। दूसरे शब्दों में, पंक्तियां फीचर 1 के सभी संभावित अवलोकनों का प्रतिनिधित्व करती हैं, और कॉलम सुविधा 2 के संभावित अवलोकन हैं। सेल (x, y) में संख्या एक बार में एक्स होने के लिए फ़ीचर 1 को देखा गया था फीचर 2 वाई था।MATLAB मैट्रिक्स
मैं इस मैट्रिक्स में निहित आपसी जानकारी की गणना करना चाहता हूं। MATLAB में अंतर्निहित information
फ़ंक्शन है, लेकिन इसमें 2 तर्क होते हैं, एक x के लिए और एक y के लिए। तर्कों को प्राप्त करने के लिए मैं इस मैट्रिक्स का उपयोग कैसे करूं?
वैकल्पिक रूप से, मैंने अपना खुद का पारस्परिक सूचना फ़ंक्शन लिखा जो मैट्रिक्स लेता है, लेकिन मैं इसकी सटीकता के बारे में अनिश्चित हूं। क्या यह सही दिखता है?
function [mutualinfo] = mutualInformation(counts)
total = sum(counts(:));
pX = sum(counts, 1) ./ total;
pY = sum(counts) ./ total;
pXY = counts ./ total;
[h, w] = size(counts);
mutualinfo = 0;
for row = 1:h
for col = 1:w
mutualinfo = mutualinfo + pXY(row, col) * log(pXY(row, col)/(pX(row)*pY(col)));
end;
end;
end
यह फ़ंक्शन मेरे मूल के समान मूल्यों को वापस कर रहा है, इसलिए मेरा मानना है कि वे समकक्ष हैं। फिर भी, तुम्हारा और अधिक सुरुचिपूर्ण है। – Colin