আমি কেন 1 এর চেয়ে বেশি এনট্রপি তথ্য পাচ্ছি?


11

এন্ট্রপি গণনা করার জন্য আমি নিম্নলিখিত ফাংশনটি প্রয়োগ করেছি:

from math import log

def calc_entropy(probs):
    my_sum = 0
    for p in probs:
        if p > 0:
            my_sum += p * log(p, 2)

    return - my_sum

ফলাফল:

>>> calc_entropy([1/7.0, 1/7.0, 5/7.0])
1.1488348542809168
>>> from scipy.stats import entropy # using a built-in package 
                                    # give the same answer
>>> entropy([1/7.0, 1/7.0, 5/7.0], base=2)
1.1488348542809166

আমার বোধগম্যতা ছিল যে এনট্রপি 0 এবং 1, 0 এর মধ্যে, যার অর্থ খুব নির্দিষ্ট এবং 1 অর্থ অত্যন্ত অনিশ্চিত। কেন আমি 1 এর চেয়ে বেশি এনট্রপি পরিমাপ করব?

আমি জানি যে আমি লগ বেসের আকার বাড়িয়ে দিলে এনট্রপি পরিমাপটি আরও ছোট হবে তবে আমি মনে করি বেস 2 মানক, সুতরাং আমি মনে করি না যে সমস্যাটি।

আমি অবশ্যই স্পষ্ট কিছু মিস করছি, তবে কী?


বেস কি এন্ট্রপির ধরণের উপর নির্ভর করে না? বেস 2 শ্যানন এন্ট্রপি এবং প্রাকৃতিক লগ স্ট্যাটিস্টিকাল মেকানিক্স এনট্রপি নয়?
অ্যালেক্সিস

@ অ্যালেক্সিস, তবে শ্যাননসের এন্ট্রপি 0 থেকে 1 এর মধ্যে নেই?
আকাওয়াল

1
না: শ্যানন এন্ট্রপি অ-নেতিবাচক।
অ্যালেক্সিস

2
মনে হচ্ছে এনট্রপি 1 এর চেয়ে বেশি হওয়াতে আমার দু'টি ইভেন্ট বেশি হওয়ার ক্ষেত্রে কোনও ভুল নেই, এবং এনট্রপির মান 0 থেকে 1 এর মধ্যে কেবল বিশেষ ক্ষেত্রে রয়েছে, যেখানে আমার ইভেন্টগুলি বাইনারি (আমার দুটি ইভেন্ট আছে)।
আকাওয়াল

উত্তর:


17

এনট্রপি হয় না হিসাবে একই সম্ভাবনা

এন্ট্রপি একটি এলোমেলো ভেরিয়েবলের "তথ্য" বা "অনিশ্চয়তা" পরিমাপ করে। আপনি যখন বেস 2 ব্যবহার করছেন, এটি বিটগুলিতে পরিমাপ করা হয়; এবং ভেরিয়েবলের একাধিক বিট তথ্য থাকতে পারে।

এই উদাহরণে, একটি নমুনায় প্রায় 1.15 বিট তথ্য থাকে "contains" অন্য কথায়, আপনি যদি পুরোপুরি নমুনাগুলির একটি সংখ্যা সঙ্কুচিত করতে সক্ষম হন তবে আপনার প্রয়োজন প্রতি গড় নমুনা হিসাবে অনেক বিট its


ধন্যবাদ. আমি মনে করি এটি পেয়েছি তবে আমি এটি নিশ্চিত করতে চাই। আমি নীচের বিবৃতি ঠিক আছে? আমার যদি কেবল দুটি ফলাফল থাকে তবে আমি পেতে পারি বেশিরভাগ তথ্যটি 1 বিট, তবে আমার যদি 1 বিটের বেশি তথ্য পেতে পারি তার চেয়ে 2 টিরও বেশি ফলাফল আমি পাই।
আকাওয়াল

হ্যাঁ. (উদাহরণস্বরূপ, চারটি সমানভাবে বিতরণ করা ফলাফল বিবেচনা করুন, যা প্রতি নমুনা অনুসারে দুটি ন্যায্য মুদ্রা টসস দ্বারা উত্পাদিত হতে পারে ))
সিএল।

এটি যুক্ত করতে, বাইনারি শ্রেণিবদ্ধকরণ সমস্যার জন্য এনট্রপি 0-1 থেকে এবং বেস 2 কে লগ করার জন্য 0, যেখানে k আপনার ক্লাসের সংখ্যা।
মাইকেলমেশখি

13

এনট্রপির সর্বাধিক মান লগ, কোথায় আপনি ব্যবহার করছেন এমন বিভাগগুলির সংখ্যা। এর সংখ্যাসম্যটি প্রাকৃতিকভাবে আপনি ব্যবহার করছেন লোগারিদমের ভিত্তিতে নির্ভর করবে।

উদাহরণ হিসাবে বেস 2 লগারিদম ব্যবহার করা, যেমন প্রশ্নে: লগ21 হয় 0 এবং লগ22 হয় 1, এর চেয়ে বড় ফলাফল 1 বিভাগগুলির সংখ্যা হলে অবশ্যই ভুল 1 অথবা 2। এর চেয়ে বড় একটি মান1 এটি অতিক্রম করলে ভুল হবে লগ2

এটির পরিপ্রেক্ষিতে এটি এনট্রপি দ্বারা স্কেল করা মোটামুটি সাধারণ লগ, যাতে ফলাফলগুলি এর মধ্যে পড়ে 0 এবং 1,


ধন্যবাদ জানতাম না। সুতরাং মূলত লোগারিদম থাসের বেসটি নমুনার দৈর্ঘ্যের সমান হতে পারে, এবং আরও কিছু নয়?
ফিয়ারস 82

2
নমুনার দৈর্ঘ্যও অবিরাম। এটি আপনার কতগুলি বিভাগ।
নিক কক্স

কেবল স্পষ্ট করে বলা, এটি কি সম্ভাব্য বিভাগের সংখ্যা, বা আপনি এনট্রপির জন্য গণনা করছেন এমন বিভাগগুলির সংখ্যা? যেমন। আমার কাছে সম্ভাব্য 10 টি বিভাগ রয়েছে, তবে আমি যে পদ্ধতিতে এনট্রপি গণনা করছি সেখানে 2 টি বিভাগের প্রতিনিধিত্ব করে। কে এই ক্ষেত্রে 2?
eljusticiero67

যে বিভাগগুলিতে অনুশীলন হয় না তারা সম্ভাব্যতা শূন্য পর্যবেক্ষণ করেছে এবং এনট্রপি ফলাফলকে প্রভাবিত করে না। এটি একটি শক্তিশালী সম্মেলন, যা আরও কঠোরভাবে ন্যায়সঙ্গত হতে পারে, এটি-0লগ0শূন্য হিসাবে নেওয়া হবে (লগারিদমের বেস এখানে অবিরাম) being
নিক কক্স

-2

এটি চেষ্টা করুন (বেস নোট করুন) ):

from math import log

def calc_entropy(probs):
    my_sum = 0
    for p in probs:
        if p > 0:
            my_sum += p * log(p)

    return - my_sum

প্রদান:

>>> calc_entropy([1/7.0, 1/7.0, 5/7.0])
0.796311640173813

আমি জানি যে আমি এটি করতে পারি তবে আমার মনে এই ধারণা ছিল যে লগ বেস 2 ব্যবহার করার ফলে 0 এবং 1 এর মধ্যে এন্ট্রপি মান পাওয়া উচিত তবে যখন আমার দুটি সম্ভাবনা থাকে তখন লগ লগ 2 ব্যবহার করা যায়?
আকাওয়াল

ব্যবহার লগ2 এর সিরিজের অনিশ্চয়তা চিহ্নিত করতে প্রয়োজনীয় বিটের সংখ্যা পরিমাপ করে পি-values। দেখুন xkcd.com/936 এবং en.wikipedia.org/wiki/Entropy_%28information_theory%29
অ্যালেক্সিস

এই উত্তরটি পরামর্শ দেয় যে নাটগুলিতে প্রকাশিত এনট্রপিটি অতিক্রম করা উচিত নয় 1, তবে আমি সন্দেহ করি এটি সেই তথ্য যা আপনি জানাতে চেয়েছিলেন, কারণ এটি ঠিক সত্য নয়।
শুশুক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.