বেসিক সমস্যা
এখানে আমার বেসিক সমস্যাটি: আমি গণনা সহ কিছু খুব স্কিউ ভেরিয়েবলযুক্ত একটি ডেটাসেট ক্লাস্টার করার চেষ্টা করছি। ভেরিয়েবলগুলিতে অনেকগুলি শূন্য থাকে এবং সুতরাং এটি আমার ক্লাস্টারিং পদ্ধতির জন্য খুব তথ্যপূর্ণ নয় - যা সম্ভবত কে-অর্থাত্ অ্যালগরিদম হতে পারে।
ভাল, আপনি বলেছেন যে, কেবল স্কোয়ার রুট, বক্স কক্স বা লগারিদম ব্যবহার করে ভেরিয়েবলগুলি রূপান্তর করুন। তবে যেহেতু আমার ভেরিয়েবলগুলি শ্রেণিবদ্ধ ভেরিয়েবলের উপর ভিত্তি করে, তাই আমি আশঙ্কা করি যে আমি অন্যটি (শ্রেণীবদ্ধ ভেরিয়েবলের একটি মানের উপর ভিত্তি করে) পরিচালনা করার মাধ্যমে একটি পক্ষপাতিত্ব পরিচয় করিয়ে দিতে পারি, অন্যকে (শ্রেণীবদ্ধ ভেরিয়েবলের মানগুলির উপর ভিত্তি করে) তারা যেভাবে রাখে ।
আসুন আরও কিছু বিশদে।
ডেটাসেট
আমার ডেটাসেট আইটেমগুলির ক্রয়ের প্রতিনিধিত্ব করে। আইটেমগুলির বিভিন্ন বিভাগ রয়েছে, উদাহরণস্বরূপ রঙ: নীল, লাল এবং সবুজ। ক্রয়গুলি তখন এক সাথে গোষ্ঠীভুক্ত করা হয়, যেমন গ্রাহকগণ। এই গ্রাহকদের প্রত্যেককেই আমার ডেটাসেটের এক সারি দ্বারা প্রতিনিধিত্ব করা হয়, তাই আমাকে কোনওভাবে গ্রাহকদের তুলনায় সামগ্রিক ক্রয় করতে হবে।
আমি যেভাবে এটি করি তা হল ক্রয়ের সংখ্যা গণনা করা, যেখানে আইটেমটি একটি নির্দিষ্ট রঙ। সুতরাং একটি একক ভেরিয়েবলের পরিবর্তে color
, আমার তিনটি ভেরিয়েবল দিয়ে শেষ count_red
, count_blue
এবং count_green
।
উদাহরণের জন্য এখানে একটি উদাহরণ দেওয়া হয়েছে:
-----------------------------------------------------------
customer | count_red | count_blue | count_green |
-----------------------------------------------------------
c0 | 12 | 5 | 0 |
-----------------------------------------------------------
c1 | 3 | 4 | 0 |
-----------------------------------------------------------
c2 | 2 | 21 | 0 |
-----------------------------------------------------------
c3 | 4 | 8 | 1 |
-----------------------------------------------------------
আসলে, আমি শেষ পর্যন্ত নিখুঁত গণনাগুলি ব্যবহার করি না, আমি অনুপাত ব্যবহার করি (গ্রাহক প্রতি সমস্ত ক্রয়ের আইটেমগুলির সবুজ আইটেমগুলির ভগ্নাংশ)।
-----------------------------------------------------------
customer | count_red | count_blue | count_green |
-----------------------------------------------------------
c0 | 0.71 | 0.29 | 0.00 |
-----------------------------------------------------------
c1 | 0.43 | 0.57 | 0.00 |
-----------------------------------------------------------
c2 | 0.09 | 0.91 | 0.00 |
-----------------------------------------------------------
c3 | 0.31 | 0.62 | 0.08 |
-----------------------------------------------------------
ফলাফলটি একই: আমার এক রঙের জন্য, যেমন সবুজ (কেউই সবুজ পছন্দ করে না), আমি বাম-স্কিউভ ভেরিয়েবলটি পেয়েছি অনেকগুলি শূন্যযুক্ত। ফলস্বরূপ, কে-মানে এই ভেরিয়েবলের জন্য একটি ভাল পার্টিশন খুঁজে পেতে ব্যর্থ।
অন্যদিকে, আমি যদি আমার ভেরিয়েবলগুলিকে মানক করে রাখি (বিয়োগফল মানে, স্ট্যান্ডার্ড বিচ্যুতি দ্বারা বিভাজন), সবুজ পরিবর্তনশীল তার ক্ষুদ্রতর পরিবর্তনের কারণে "ফুঁপিয়ে যায়" এবং অন্যান্য ভেরিয়েবলের তুলনায় অনেক বড় পরিসীমা থেকে মান গ্রহণ করে, যা এটি আরও চেহারা দেখায় এটি আসলে-এর চেয়ে কে-মানেগুলির পক্ষে গুরুত্বপূর্ণ।
পরবর্তী ধারণাটি হ'ল স্ক (আর) ইড সবুজ পরিবর্তনশীল trans
স্কিউ ভেরিয়েবলের রূপান্তর করা
স্কোয়ার রুট প্রয়োগ করে যদি আমি সবুজ পরিবর্তনশীল রূপান্তর করি তবে এটি কিছুটা কম স্কিউড দেখাচ্ছে। (এখানে সবুজ পরিবর্তনশীল বিভ্রান্তি নিশ্চিত করতে লাল এবং সবুজ রঙে প্লট করা হয়েছে))
লাল: মূল পরিবর্তনশীল; নীল: বর্গমূল দ্বারা রূপান্তরিত।
ধরা যাক আমি এই রূপান্তরটির ফলাফল নিয়ে সন্তুষ্ট (যা আমি নই, যেহেতু শূন্যরা এখনও বিতরণকে দৃ strongly়ভাবে স্কু করে)। তাদের বিতরণটি ভাল দেখায়, তবে এখন আমারও কি লাল এবং নীল ভেরিয়েবলগুলি স্কেল করা উচিত?
শেষের সারি
অন্য কথায়, আমি কি একরকমভাবে সবুজ রঙের রঙ পরিচালনা করে, তবে লাল এবং নীলকে একেবারেই পরিচালনা না করে গুচ্ছকর ফলাফলগুলি বিকৃত করি? শেষ অবধি, তিনটি ভেরিয়েবল এক সাথে সম্পর্কিত তাই তাদের কী একইভাবে পরিচালনা করা উচিত নয়?
সম্পাদনা
স্পষ্ট করার জন্য: আমি সচেতন যে কে-মানে সম্ভবত গণনাভিত্তিক ডেটা যাওয়ার উপায় নয় । আমার প্রশ্ন তবে নির্ভরশীল ভেরিয়েবলের চিকিত্সা সম্পর্কে। সঠিক পদ্ধতি নির্বাচন করা পৃথক বিষয়।
আমার ভেরিয়েবলের অন্তর্নিহিত সীমাবদ্ধতা এটি
count_red(i) + count_blue(i) + count_green(i) = n(i)
যেখানে n(i)
গ্রাহকের মোট ক্রয়ের সংখ্যা i
।
(বা, সমতুল্য, count_red(i) + count_blue(i) + count_green(i) = 1
আপেক্ষিক গণনা ব্যবহার করার সময়।)
আমি যদি আমার ভেরিয়েবলগুলি অন্যরকমভাবে রূপান্তর করি তবে এটি সীমাবদ্ধতার মধ্যে তিনটি শর্তকে আলাদা ওজন দেওয়ার সাথে মিলে। যদি আমার লক্ষ্য গ্রাহকদের অনুকূলভাবে পৃথক গোষ্ঠী করা হয়, তবে আমাকে এই সীমাবদ্ধতা লঙ্ঘন করার বিষয়ে যত্ন নেওয়া উচিত? বা "শেষ মানে কি ন্যায্যতা"?
count_red
, count_blue
এবং count_green
এবং ডেটা গন্য হয়। রাইট? সারিগুলি তখন কি - আইটেমগুলি? এবং আপনি আইটেম গুচ্ছ যাচ্ছে?