গাউসির বেল-বক্ররে সংখ্যার সেট জোর করে


9

( এটি স্ট্যাক ওভারফ্লো সম্পর্কে আমার প্রোগ্রামিং প্রশ্নের সাথে সম্পর্কিত : বেল কার্ভ গাউসিয়ান অ্যালগরিদম (পাইথন এবং / বা সি #) )

উত্তর ডটকম-এ, আমি এই সহজ উদাহরণটি পেয়েছি:

  1. গাণিতিক গড় (গড়) => সেটে সমস্ত মানের সমষ্টি নির্ধারণ করুন, সেটের উপাদানগুলির সংখ্যা দ্বারা বিভক্ত
  2. সেটে সমস্ত মানের স্কোয়ারের যোগফল সন্ধান করুন
  3. (2) আউটপুটকে সেটের উপাদানগুলির সংখ্যার উপর ভাগ করুন
  4. (3) এর আউটপুট থেকে গড় (1) এর বর্গ বিয়োগ করুন
  5. (4) এর ফলাফলের বর্গমূল নিন

উদাহরণ: সেট এ = {1,3,4,5,7}

  1. (1 + 3 + 4 + 5 + 7) / 5 = 4
  2. (1 * 1 + 3 * 3 + 4 * 4 + 5 * 5 + 7 * 7) = 1 + 9 + 16 + 25 + 49 = 100
  3. 100/5 = 20
  4. 20 - 4 * 4 = 20-16 = 4
  5. এসকিউআরটি (4) = 2

(এটি উইকি.ইনসওয়ার্স.কমের একটি পোস্ট থেকে আসে ))

এখন সমস্ত কিছু দেওয়া, আমি কীভাবে উপরের উপাত্তগুলিকে 200 থেকে 800 এর মধ্যে একটি বেল বক্রের (যেমন ক্রেডিট স্কোর) ফিট করতে পারি। স্পষ্টত উপরের সেটে 5 নম্বরটি 500 হবে। তবে কী নির্ধারণের সূত্রটি কী? 3 একই স্কেলে হওয়া উচিত। যদিও মূল সেট সেট এ = {1,3,4,5,7। বেল-বক্রতা নয়, আমি এটিকে জোর করে বেল-বক্ররেখাতে চাই।

ভাবুন এগুলি 5 জন স্কোর। পরের মাসে স্কোরগুলি নিম্নরূপে পরিবর্তিত হতে পারে: সেট করুন A2={1,2,4,5,9}(এক ছেলেরা একটি পয়েন্ট হারিয়ে ফেলে এবং শীর্ষ লোকটি আরও দুটি পয়েন্ট অর্জন করে - ধনীরা আরও ধনী হয় এবং দরিদ্ররা আরও দরিদ্র হয়)। তারপরে সম্ভবত একটি নতুন লোক সেটে আসে: সেট করুন A3={1,2,4,5,8,9}


2
যদি আপনার সেট সময় থেকে সময় পরিবর্তন করে তবে এটি একই ঘণ্টা-বক্ররেখায় ফিট করা অসম্ভব। ধরুন আপনি সেট আছেএকজন={1,2,3,4}সুতরাং, 4 টি 800 হওয়া উচিত, তবে যদি নতুন পর্যবেক্ষণ 5 আসে তবে এটি 800 হয়ে উঠতে হবে
mpiktas

1
ক্রসভিলেটেড, নিলওয়াল্টার্সে আপনাকে স্বাগতম। আপনি দেখতে পাবেন যে একটি পরিসংখ্যানবিদকে জিজ্ঞাসা করার একটি সাধারণ প্রতিক্রিয়া "আমি এটি কীভাবে করব" "আপনি এটি করতে চান কেন?"
onestop

@ অনস্টপ - পূর্ববর্তী পোস্টে আমার লিঙ্কটি দেখুন। স্কুলে, আমি সেই শিক্ষকদের শ্রবণের কথা মনে করি যারা "বক্ররেখা" গ্রেড করেছিল। সুতরাং আপনি কোনও পরীক্ষায় কী স্কোর পেয়েছেন তা বিবেচনা না করেই, কেবলমাত্র একটি নির্দিষ্ট শতাংশ মানুষ প্রতিটি গ্রেড পাবেন। ক্রেডিট স্কোরগুলি কীভাবে কাজ করে সে সম্পর্কে আমার কোনও ধারণা নেই তবে আমি যা অনুকরণ করছি তার সাথে এটি বেশ মিল। আমি লোকেদের উদাহরণ দিই যখন তারা offণ পরিশোধ করে loan তবে কিছু লোক কয়েক ডজন payণ পরিশোধ করবে। আমি আমার বন্য পয়েন্টগুলি স্বাভাবিক পয়েন্টগুলির একটি সেটকে ঘনীভূত করতে চাই।
নিলওয়াল্টার

আপনার শেষ মন্তব্যটি পড়ে আমি অবাক হলাম কী কী পদ্ধতির সেরা: উদাহরণস্বরূপ, প্রতিটি loanণ পরিশোধের জন্য 1 পয়েন্ট দিন, অন্যান্য জিনিসের জন্য অন্যান্য পয়েন্ট দিন, তারপরে শেষে প্রচুর স্কোরকে নিয়ন্ত্রণ করার চেষ্টা করুন বা প্রতিটি উপাদানটির সাথে সম্ভবত আরও কিছু অর্থপূর্ণ কিছু করুন যা চূড়ান্ত স্কোর আপ? উদাহরণস্বরূপ, যদি আপনি পরিশোধিত loansণের জন্য পয়েন্ট দেন তবে আপনি আপনার ansণ পরিশোধিত অফ (এলপিও) পয়েন্টগুলি লগ (1 + নাম্বারফলন-পেইড অফ) হিসাবে গণনা করতে পারেন। সুতরাং শোধ করা শূন্য someoneণ প্রাপ্ত কেউ ০১ টির এলপিও পায়, তিনটি loansণ সমাপ্ত কেউ ১.১ এর এলপিও পায়, যখন ১০০ জন loansণ পরিশোধের সাথে 4..6 এর এলপিও পায়। 5 এ এলপিও ক্যাপ করুন
ওয়েইন

উত্তর:


13

200 থেকে 800 (SATs এর জন্য উদাহরণস্বরূপ ) এর মতো একটি ছোট আকারের পরিসরটি পরিমাপের এককগুলির পরিবর্তন মাত্র । (এটি ঠিক ফারেনহাইটে তাপমাত্রা সেলসিয়াসের পরিবর্তনের মতো কাজ করে))

500 এর মাঝারি মানেরটি ডেটার গড়ের সাথে মিলিত হয়। পরিসীমাটি যখন ডেটা একটি সাধারণ বন্টন ("বেল বক্ররেখা") অনুসরণ করে তখন প্রায় 99.7% ডেটার সাথে সম্পর্কিত হয় । এটি 8/9 ডেটা অন্তর্ভুক্ত করার গ্যারান্টিযুক্ত ( চেবিশেভের বৈষম্য )।

এই ক্ষেত্রে, সূত্র 1-5 থেকে ডেটার মানক বিচ্যুতি গণনা করে। এটি কেবল আসল তথ্যগুলির জন্য পরিমাপের একটি নতুন একক। এটি নতুন স্কেলে 100 টি ইউনিটের সাথে সম্পর্কিত হতে হবে। অতএব, একটি আসল মানকে ছোট আকারে রূপান্তর করতে,

  • গড় বিয়োগ করুন।

  • স্ট্যান্ডার্ড বিচ্যুতি দ্বারা বিভক্ত।

  • 100 দ্বারা গুণ করুন।

  • 500 যোগ করুন।

যদি ফলাফলটি সীমার বাইরে থাকে [200,800] আপনি হয় হিসাবে হয় হিসাবে এটি ব্যবহার করতে পারেন বা "800" থেকে 200 অবধি বৃত্তাকারে এটি "ক্ল্যাম্প" করতে পারেন।

উদাহরণস্বরূপ , ডেটা ব্যবহার করে{1,3,4,5,7}, গড় হয় 4 এবং এসডি হয় 2। সুতরাং, উদ্ধার করার পরে,1 হয়ে (1-4)/2*100+ +500=350। পুরো উদ্ধারকৃত ডেটাসেট, একইভাবে গণনা করা হয়{350,450,500,550,650}

যখন মূল ডেটাগুলি একটি স্বতঃ-স্বাভাবিকভাবে বিতরণ করা হয় তখন আপনার অন্য পদ্ধতির প্রয়োজন । আপনি আর গড় বা এসডি গণনা করবেন না। পরিবর্তে, 1 ম (ক্ষুদ্রতম) থেকে শুরু করে সমস্ত স্কোরকে ক্রমে রাখুনএনতম (বৃহত্তম) এগুলি তাদের র‌্যাঙ্কস । যে কোনও পদকে রূপান্তর করুনআমিতার শতাংশের মধ্যে (আমি-1/2)/এন। (উদাহরণে,এন=5 এবং ডেটা ইতিমধ্যে র‌্যাঙ্ক ক্রমে রয়েছে আমি=1,2,3,4,5। সুতরাং তাদের শতাংশ1/10,3/10,5/10,7/10,9/10, প্রায়শই সমানভাবে লেখা 10%,30%, ইত্যাদি) যে কোনও শতাংশের সাথে সম্পর্কিত (এর মধ্যে) 0 এবং 1, অগত্যা) একটি স্বাভাবিক কোয়ান্টাইল । এটি স্বাভাবিক কোয়ান্টাইল ফাংশনের সাথে গণনা করা হয় , যা ত্রুটি ফাংশনের সাথে ঘনিষ্ঠভাবে সম্পর্কিত । (সরল সংখ্যাসূচক অনুমানের কোডের জন্য সহজবোধ্য)) এর মানগুলি, যা সাধারণত -3 থেকে 3 এর মধ্যে হবে, পরিসরে পুনরুদ্ধার করতে হবে (ঠিক আগের মতো)[200,800]। প্রথমে সাধারণ কোয়ান্টাইলকে 100 দ্বারা গুণ করে এবং পরে 500 যোগ করে এটি করুন।

সাধারণ কোয়ান্টাইল ফাংশন স্প্রেডশিট সহ ( উদাহরণস্বরূপ, এক্সেলের নর্মসিনভ ) সহ অনেকগুলি কম্পিউটিং প্ল্যাটফর্মে উপলব্ধ । উদাহরণস্বরূপ, ডেটার জন্য স্বাভাবিক কোয়ান্টাইলস (বা "সাধারণ স্কোর"){1,3,4,5,7} হয় {372,448,500,552,628}

আপনার যদি 370 বা তার চেয়ে কম মান থাকে তবে এই " নরমাল স্কোরিং " পদ্ধতিটি সর্বদা 200 থেকে 800 এর মধ্যে স্কোর দেয়। যখন আপনার 1111 বা তার চেয়ে কম মান রয়েছে তখন সর্বোচ্চ এবং সর্বনিম্ন ব্যতীত সমস্তগুলির 200 এবং 800 এর মধ্যে স্কোর থাকবে।


+1, আমি আমার উত্তরটি মুছে ফেলেছি, যেহেতু আপনার
উপায়টি

আপনি কোথায় পাবেন 5-5 তে 5? 4 গড় হয়। এটা 1-4 করা উচিত? আমি আজ পাইথনের সাথে পরীক্ষা করছি, আবারও ধন্যবাদ।
নিলওয়াল্টার্স

@ নিলওয়াল্টার্স দুঃখিত, এটি আঙুলের একটি স্লিপ ছিল। আমি এখনই এটি স্থির করেছি তাই এটি (1-4) / 2 * 100 + 500 পড়ে।
শুক্র

4

আপনি এই পদ্ধতির চেষ্টা করতে পারেন - মান -1 এবং +1 এর মধ্যে সীমার জন্য আপনার ডেটা সেটটিকে স্বাভাবিক করুন:

(individual_value-min_of_all_valuesmax_of_all_values-min_of-all_values-0.5)*2।
এটি আপনার ডেটা সেট করা প্রতিটি মানকে -1 এবং +1 এর মধ্যে একটি মানে রূপান্তর করবে, আসল সর্বাধিক এবং ন্যূনতম মান যথাক্রমে +1 এবং -1 এ সেট করা হবে এবং তারপরে এই +1 এবং -1 মানগুলিকে +0.9999 এ পুনরায় সেট করুন এবং -0.9999 (নিম্নলিখিত গণনার জন্য প্রয়োজনীয়।)

তারপরে প্রায় প্রতিটি সাধারণ বন্টনের সাথে সামঞ্জস্য রাখতে "এটিকে জোর করা" এবং উপরের এই প্রতিটি ফিশার ট্রান্সফর্ম মানকে ২০০ থেকে ৮০০ এর মধ্যে মূল্যমানের মধ্যে "আন-সাধারণকরণ" করতে উপরের প্রতিটি সাধারণ মানের প্রতিটিটিতে ফিশার ট্রান্সফরমেশন প্রয়োগ করুন :

Fish_value-min_all_Fish_valuesmax_all_Fish_values-min_all_Fish_values*600+ +200
সর্বাধিক ফিশার ট্রান্সফর্ম মান হ'ল 800 এ সেট করা হবে, ন্যূনতম ফিশার ট্রান্সফর্ম মানটি 200 এ ঠিক সেট করা হবে এবং আনুমানিক স্বাভাবিক বন্টন অনুসারে অন্যান্য সমস্ত মান এই দুটি চূড়ার মধ্যে থাকবে lie

আপনার মূল প্রশ্নটি এসও এবং স্কেলাবিলিটি ইস্যুতে উল্লেখ করে এই পদ্ধতির সুবিধাটি হ'ল যে কোনও নতুন ডেটা পয়েন্ট নিজেই কোনও নতুন সর্বাধিক বা সর্বনিম্ন ডেটা সেট করার জন্য সর্বনিম্ন নয় আপনি উপরের গণনাগুলিকে নতুন ডেটা পয়েন্টে প্রয়োগ করতে পারেন মূল ডেটা সেটের বিদ্যমান স্কোরগুলির কোনওটিকে প্রভাবিত না করে 200 এবং 800 এর মধ্যে এর স্কোর পেতে। যদি কোনও নতুন ডেটা পয়েন্ট একটি নতুন সর্বাধিক বা সর্বনিম্ন হয় তবে আপনাকে এই নতুন "নরমালাইজিং" সর্বাধিক বা ন্যূনতম মান দিয়ে সেট করা পুরো ডেটার জন্য স্কোরগুলি পুনরায় গণনা করতে হবে।

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