সাজানো তথ্যের সংগ্রহ কীভাবে 'বুদ্ধি করে' বিন করবেন?


11

আমি বুদ্ধি করে একটি সাজানো সংগ্রহ বিনে চেষ্টা করছি। আমার কাছে টুকরোগুলির সংকলন রয়েছে । কিন্তু আমি জানি যে মধ্যে এই তথ্য তড়কা মি অসম মাপের বিন। ডেটা সঠিকভাবে ফিট করার জন্য কীভাবে বুদ্ধিমানভাবে শেষের পয়েন্টগুলি চয়ন করবেন তা আমি জানি না। উদাহরণ স্বরূপ:nm

বলুন যে আমার সংগ্রহে আমার কাছে 12 টি আইটেম রয়েছে এবং আমি জানি যে ডেটা 3 টি বাক্সে ফিট হবে:

Index:  1 2 3 4 5 6 7 8 9 10 11 12
Value:  1 1 1 3 3 3 3 3 3 5  5  6

আমি কিভাবে বুদ্ধিমত্তার এর বিন জন্য আমার ব্রেকপয়েন্ট চয়ন করেন ?i={13},{49},{1012}

বর্তমান বাস্তবায়ন আমার কাছে তথ্যগুলি সমান আকারের বিনগুলিতে বিভক্ত হয় এবং তারপরে বিনের শেষের জন্য সূচিগুলি খুঁজতে শেষ পয়েন্টগুলির গড় লাগে। সুতরাং এটি এর মতো কাজ করে:

Index:  1 2 3 4 5 6 7 8 9 10 11 12
Value:  1 1 1 3 3 3 3 3 3 5  5  6

first break evenly: i = 1-4, 5-8, 9-12
mean endpoints:  between 4 and 5: (3+3)/2 = 3
                 between 8 and 9: (3+3)/2 = 3

সুতরাং এখন 3 এর নীচে যে কোনও কিছু 1 টি ফিট করে, 3 এর উপরে কিছু কিন্তু 3 এর নীচে বিন 2 তে ফিট করে এবং 3 এর উপরে যে কোনও কিছুই 3 বাক্সে ফিট করে। আপনি দেখতে পাচ্ছেন আমার সমস্যাটি কী। যদি ডেটাতে অসম বিন্যাস থাকে তবে আমার পদ্ধতিটি ব্যর্থ।

একটি বন্ধু কে-নিকটতম প্রতিবেশী অ্যালগরিদমের কথা উল্লেখ করেছে তবে আমি নিশ্চিত নই।


1
আপনি কি দয়া করে "বুদ্ধিমানের" অর্থ বোঝাতে পারেন? আপনি বিনিন দিয়ে কী অর্জন করতে চাইছেন? কেন আপনি প্রথম স্থানে বিনে বসে আছেন?
হোবার

<3bin13&<4bin24bin3

আমি বুদ্ধিমানের সাথে বোঝাচ্ছি যেমন নির্লিপ্তভাবে নয় যেমন ধরে নিয়েছিলাম যে বিনগুলি সমানভাবে ব্যবধান করা হয়েছিল। যদি ডেটার টুকরোটি একটি নির্দিষ্ট বাক্সে পড়ে যা আমাকে সেই তথ্যটির টুকরো সম্পর্কে খুব গুরুত্বপূর্ণ কিছু বলে। আমি বিন বিরতি সূচকগুলি নির্ধারণ করতে ডেটা বাছাই করে এবং তারপরে সিদ্ধান্ত নিই যে প্রতিটি টুকরো ডেটা পৃথকভাবে পড়ে।
ম্যাথু কেমনেটজ

আমার গড়পড়তাতে কিছু ভুল না করলে আমি মনে করি আমার এটি ঠিক আছে। সমান নির্বাচন করে; y স্পেসযুক্ত বিনগুলি আমার সমস্ত শেষের পয়েন্ট 3 টি। সুতরাং আমি সঠিকভাবে আমার ডেটা বিন করতে পারি না। এই কারণেই আমার বাস্তবায়ন এমনকি সংযোগ ছাড়াই ভেঙে যায়;
ম্যাথু কেমনেটজ

কিছুটা আলাদা সেটিংয়ে আমি এখানে কিছু করেছি
ম্যাক্রো

উত্তর:


9

আমি মনে করি আপনি যা করতে চান তাকে ক্লাস্টারিং বলা হয়। আপনি আপনার "মান" এর সাথে একত্রে গ্রুপ করতে চান যে অনুরূপ মানগুলি একই বিনে সংগ্রহ করা হয় এবং মোট বিনয়ের সংখ্যা প্রিসেট হয়।

আপনি কে-মানে ক্লাস্টারিং অ্যালগরিদম ব্যবহার করে এই সমস্যাটি সমাধান করতে পারেন । ম্যাটল্যাবে, আপনি এটি দ্বারা এটি করতে পারেন:

bin_ids = kmeans(Values,3); 

উপরের কলটি Valuesতিনটি গ্রুপে মানগুলিকে গোষ্ঠীভূত করবে যেমন-গ্রুপের ভেরিয়েন্সটি ন্যূনতম।


1
আমি এটি খুঁজে পেয়েছি। এটি ঠিক আমি বাস্তবায়ন করেছি এবং এটি দুর্দান্তভাবে কাজ করেছে। আমি আমার নিজের প্রশ্নের উত্তর দিতে এখানে এসেছি কিন্তু আপনি আমাকে এতে মারধর করেছেন! ক্লাস্টারিং আমি যা করার চেষ্টা করছিলাম।
ম্যাথু কেমনেটজ

8

কে-মানে একটি বিকল্প, তবে এটি 1 মাত্রিক ডেটার জন্য খুব বুদ্ধিমান নয়। এক-মাত্রিক ডেটাতে আপনার একটি বিশাল সুবিধা রয়েছে: ডেটা সম্পূর্ণরূপে বাছাই করা যায়।

কটাক্ষপাত আছে প্রাকৃতিক বিরতি অপ্টিমাইজেশান পরিবর্তে:
http://en.wikipedia.org/wiki/Jenks_natural_breaks_optimization


এটি অত্যন্ত আকর্ষণীয়। কেন আপনি সম্ভবত কেন এর চেয়ে ভাল হতে পারে তার আরও বিশদে যেতে পারেন?
ম্যাথু কেমনেটজ

আমি জিজ্ঞাসা করার মূল কারণটি হ'ল কারণ আমি আমার অ্যালগরিদমের জন্য ম্যাটল্যাব ব্যবহার করছি এবং আমি কোনও জেনস প্রাকৃতিক বিরতি অপ্টিমাইজেশন কোনও সরঞ্জামবক্সে খুঁজে পাইনি তাই আমার নিজের প্রয়োগ করতে হবে to আমি কেবল জানতে চেয়েছিলাম যে আমি গিয়ারগুলি পরিবর্তন করে এটি প্রয়োগ করার আগে এটি আরও কত ভাল / দ্রুত হতে পারে।
ম্যাথু কেমনেটজ

1
কে মানে খুব বোকা। এর মানে আছে, এবং এটা সবসময় মধ্যে বিভক্ত হবে মধ্যম দুই উপায়ে। সুতরাং প্রদত্ত উদাহরণস্বরূপ 0 1 2 3 4 5 7 7 7, কে-অর্থ 4 এবং 5 এর মধ্যে বিভক্ত করতে পছন্দ করবে কখনও কখনও এটি 3 থেকে 4 এর মধ্যেও বিভক্ত হয়ে যায়
কিট আছে - অ্যানি-মৌসে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.