উচ্চ-মাত্রিক ডেটাতে নিকটতম প্রতিবেশী?


163

প্রদত্ত ভেক্টরের নিকটতম নিকটবর্তী প্রতিবেশী কীভাবে খুঁজে পাবেন সে বিষয়ে আমি কয়েক দিন আগে একটি প্রশ্ন জিজ্ঞাসা করেছি । আমার ভেক্টরটি এখন 21 টি মাত্রা এবং আমি আরও এগিয়ে যাওয়ার আগে, কারণ আমি মেশিন লার্নিং বা ম্যাথের ডোমেন থেকে নেই, আমি নিজেকে কিছু মৌলিক প্রশ্ন জিজ্ঞাসা করতে শুরু করেছি:

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

কেউ কি দয়া করে উপরের প্রশ্নগুলির কয়েকটি (বা সমস্ত) পরিষ্কার করতে পারেন?


Metaoptimize.com- এ জিজ্ঞাসা করার চেষ্টা করুন
pjton

4
"উচ্চ মাত্রা" কিছু লোকের জন্য 20 এবং কিছু ডেটা, 50 বা 100 বা 1000 এর জন্য 1000 আপনি যদি পারেন তবে দয়া করে নম্বর দিন, যেমন "আমি xx ব্যবহার করে 21, 1000000 ডেটা পয়েন্ট আবছা করেছি"।
ড্যানিস

কেডি-ট্রি একসাথে এক মাত্রার সাথে ডেটা দু'ভাগে বিভক্ত করে। আপনার যদি 20 টি মাত্রা এবং কেবল 1 এম ডেটা পয়েন্ট থাকে তবে আপনি প্রায় 1 স্তরের গাছ পাবেন - যেখানে স্তর মানে প্রতিটি অক্ষরে বিভক্ত। যেহেতু সত্যিকারের গভীরতা নেই, তাই আপনি গাছের ডালগুলি উপেক্ষা করার সুবিধা পাবেন না। এটি বাইনারি গাছের মতো এতটা না ভাবা সহায়ক, তবে এটি একটি বাইনারি গাছের মতো প্রয়োগ করা সত্ত্বেও কোয়াড-ট্রি, অষ্ট্রি ইত্যাদির মতো।
phkahler

@ এডিসিস, হিগস ডেটাসেটের জন্য '21 ডিএম 2100, 1000000 ডেটা পয়েন্ট' ছিল?
নিক্ক

1
হিগস ডেটাসেটটি ডাউনলোড করার লিঙ্কটি এখানে। 28 টি গুণাবলী সহ 11 মিলিয়ন পর্যবেক্ষণ। শেষ কলামটি হ'ল লেবেল: সংকেতের জন্য 1, শব্দের জন্য শূন্য। archive.ics.uci.edu/ml/datasets/HIGGS
nikk

উত্তর:


179

আমি বর্তমানে এই জাতীয় সমস্যাগুলি - শ্রেণিবিন্যাস, নিকটতম প্রতিবেশী সন্ধান - সংগীতের তথ্য পুনরুদ্ধারের জন্য অধ্যয়ন করি।

আপনি আনুমানিক নিকটতম নিকটবর্তী ( এএনএন ) অ্যালগরিদমে আগ্রহী হতে পারেন । ধারণাটি হ'ল আপনি অ্যালগরিদমকে প্রতিবেশীদের কাছাকাছি পর্যায়ে ফিরে আসতে দিয়েছেন (সম্ভবত নিকটবর্তী প্রতিবেশী নয়); এটি করতে গিয়ে আপনি জটিলতা হ্রাস করেন। আপনি কেডি-ট্রি উল্লেখ করেছেন ; এটি একটি উদাহরণ। তবে যেমনটি আপনি বলেছেন, কেডি-ট্রি উচ্চ মাত্রায় খারাপভাবে কাজ করে। প্রকৃতপক্ষে, সমস্ত বর্তমান সূচীকরণ কৌশল (স্পেস পার্টিশন ভিত্তিক) পর্যাপ্ত উচ্চ মাত্রার জন্য রৈখিক অনুসন্ধানে অবনমিত হয় [1] [2] [3]।

সম্প্রতি প্রস্তাবিত এএনএন অ্যালগরিদমগুলির মধ্যে , সম্ভবত সর্বাধিক জনপ্রিয় হ'ল লোকালাইটিটি-সেনসিটিভ হ্যাশিং ( এলএসএইচ ), যা একটি উচ্চ-মাত্রিক স্থানের বিন্দুগুলির একটি সেটকে বিনের একটি সেট হিসাবে মানচিত্র করে, অর্থাৎ হ্যাশ টেবিল [1] [3]। তবে traditionalতিহ্যবাহী হ্যাশগুলির বিপরীতে, একটি লোকাল-সংবেদনশীল হ্যাশ কাছাকাছি পয়েন্টগুলি একই বিনটিতে রাখে।

এলএসএইচ এর কিছু বিশাল সুবিধা রয়েছে। প্রথমত, এটি সহজ। আপনি কেবল আপনার ডাটাবেসে সমস্ত পয়েন্টের জন্য হ্যাশ গণনা করুন, তারপরে সেগুলি থেকে একটি হ্যাশ টেবিল তৈরি করুন। জিজ্ঞাসা করতে, কেবল ক্যোয়ারি পয়েন্টের হ্যাশ গণনা করুন, তারপরে হ্যাশ টেবিল থেকে একই বিনের সমস্ত পয়েন্ট পুনরুদ্ধার করুন।

দ্বিতীয়ত, একটি কঠোর তত্ত্ব রয়েছে যা এর কার্য সম্পাদনকে সমর্থন করে। এটি দেখানো যেতে পারে যে ক্যোয়ারির সময়টি ডাটাবেসের আকারে সাবলাইনার , অর্থাৎ লিনিয়ার অনুসন্ধানের চেয়ে দ্রুত। কত দ্রুত নির্ভর করে আমরা কতটা আনুমানিকতা সহ্য করতে পারি তার উপর।

অবশেষে, এলএসএইচ যে কোনও এলপি আদর্শের সাথে সামঞ্জস্যপূর্ণ 0 < p <= 2। সুতরাং, আপনার প্রথম প্রশ্নের উত্তর দেওয়ার জন্য, আপনি ইউক্লিডিয়ান দূরত্বের মেট্রিকের সাথে এলএসএইচ ব্যবহার করতে পারেন , বা আপনি ম্যানহাটনের (এল 1) দূরত্বের মেট্রিকের সাহায্যে এটি ব্যবহার করতে পারেন। হামিং দূরত্ব এবং কোসাইন মিলের জন্যও বৈকল্পিক রয়েছে।

২০০c সালে আইইইই সিগন্যাল প্রসেসিং ম্যাগাজিনের জন্য ম্যালকম স্লানি এবং মাইকেল ক্যাসি লিখেছিলেন একটি শালীন ওভারভিউ [৪]।

এলএসএইচটি সর্বত্র আপাতদৃষ্টিতে প্রয়োগ করা হয়েছে। আপনি এটি ব্যবহার করে দেখতে চাইতে পারেন।


[1] দাতর, ইন্দিক, ইম্মার্লিকা, মিরোককনি, "পি-স্টেবল ডিস্ট্রিবিউশনগুলির উপর ভিত্তি করে স্থানীয়তা-সংবেদনশীল হ্যাশিং স্কিম," ২০০৪।

[২] ওয়েবার, শেক, ব্লট, "উচ্চ মাত্রার জায়গাগুলিতে সমতা-অনুসন্ধান পদ্ধতিগুলির জন্য একটি পরিমাণগত বিশ্লেষণ এবং পারফরম্যান্স অধ্যয়ন," ​​1998।

[3] জিওনিস, ইন্দিক, মোতওয়ানি, "হ্যাশিংয়ের মাধ্যমে উচ্চ মাত্রায় সাদৃশ্য অনুসন্ধান," 1999।

[৪] স্লেনি, ক্যাসি, "নিকটতম প্রতিবেশীদের সন্ধানের জন্য স্থানীয়তা-সংবেদনশীল হ্যাশিং", ২০০৮।


1
@ স্টিভ: উত্তরের জন্য আপনাকে ধন্যবাদ। আপনার কাছে এলএসএইচ বাস্তবায়ন সম্পর্কে কিছু পরামর্শ আছে? এমআইটি থেকে আসা একজনকেই আমি দেখেছি। চারপাশে ভাসমান অন্য কোন প্যাকেজ রয়েছে কি?
কিংবদন্তি

1
ওটা ছাড়াও না, আমি অন্যের কথা জানি না। আমি আমার নির্দিষ্ট উদ্দেশ্যে পাইথনে আমার নিজের লেখাটি শেষ করেছি। মূলত, প্রতিটি হ্যাশ টেবিলটি পাইথন অভিধান হিসাবে প্রয়োগ করা হয় d, যেখানে d[k]কী সহ একটি বিন রয়েছে kd[k]যার হ্যাশ এমন সমস্ত পয়েন্টের লেবেল রয়েছে k। তারপরে, আপনাকে কেবল প্রতিটি পয়েন্টের জন্য হ্যাশ গণনা করতে হবে। একা দেখুন। (1) [4] এ, বা বিভাগ 1 [1] এ।
স্টিভ তেজোয়া

@ স্টিভ: আপনার সহায়তার জন্য ধন্যবাদ আমি এখন এটি বাস্তবায়ন শুরু করব। কোনও পদ্ধতিতে এই পদ্ধতিটি বড় ডেটাসেটগুলির জন্য কীভাবে সম্পাদন করে সে সম্পর্কে আপনার কোনও ধারণা আছে?
কিংবদন্তি

1
আরেকটি রেফারেন্স সমর্থনকারী LSH: উচ্চ-মাত্রিক স্থানের নিকটবর্তী নেইবার আলগোরিদিম তুলনা , Hendra Gunadi, 2011 cs.anu.edu.au/student/projects/11S2/Reports/Hendra%20Gunadi.pdf
অলিভার কোলম্যান

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

81

I. দুরত্ব মেট্রিক

প্রথমত, কোনও ডেটা সেটে ফিচারের সংখ্যা (কলাম) কেএনএন-তে ব্যবহারের জন্য দূরত্বের মেট্রিক নির্বাচন করার কোনও কারণ নয়। এই প্রশ্নের সঠিকভাবে নির্দেশিত করার জন্য বেশ কয়েকটি প্রকাশিত অধ্যয়ন রয়েছে এবং তুলনার জন্য সাধারণ ভিত্তিগুলি হ'ল:

  • আপনার ডেটা অন্তর্নিহিত পরিসংখ্যান বিতরণ;

  • বৈশিষ্ট্যগুলির মধ্যে সম্পর্ক যা আপনার ডেটা সমন্বিত করে (তারা কি স্বতন্ত্র - যেমন, কোভারিয়েন্স ম্যাট্রিক্স দেখতে কেমন লাগে); এবং

  • স্থানাঙ্ক স্থান যেখানে থেকে আপনার ডেটা প্রাপ্ত হয়েছিল।

আপনার যে বিতরণ (গুলি) থেকে আপনার ডেটা নমুনা করা হয়েছিল তার কোনও পূর্ববর্তী জ্ঞান না থাকলে কমপক্ষে একটি (ভাল নথিভুক্ত এবং পুঙ্খানুপুঙ্খ) অধ্যয়ন থেকে সিদ্ধান্ত নেওয়া হয়েছে যে ইউক্লিডিয়ান দূরত্ব সেরা পছন্দ the

YEuclidean মেট্রিক মেগা-স্কেল ওয়েব সুপারিশ ইঞ্জিনগুলির পাশাপাশি বর্তমান একাডেমিক গবেষণায় ব্যবহৃত হয়। ইউক্লিডিয়ান দ্বারা গণনা করা দূরত্বগুলির স্বজ্ঞাত অর্থ এবং গণনার আঁশ রয়েছে - অর্থাত, ইউক্লিডিয়ান দূরত্ব একইভাবে গণনা করা হয়, দুটি বিন্দু দ্বিমাত্রিক বা বাইশ মাত্রার জায়গাতেই হোক।

এটি কেবলমাত্র আমার জন্য কয়েকবার ব্যর্থ হয়েছে, ইউক্লিডিয়ান দূরত্বের প্রতিটি ক্ষেত্রেই ব্যর্থ হয়েছিল কারণ অন্তর্নিহিত (কার্তেসিয়ান) সমন্বয় ব্যবস্থাটি একটি নিম্ন পছন্দ ছিল। এবং আপনি সাধারণত এটি সনাক্ত করতে পারবেন কারণ উদাহরণস্বরূপ পাথ দৈর্ঘ্য (দূরত্ব) আর যুক্ত হয় না - যেমন, যখন মেট্রিক স্পেসটি দাবাবোর্ড হয়, ম্যানহাটনের দূরত্ব ইউক্লিডিয়ান থেকেও ভাল হয়, তেমনিভাবে যখন মেট্রিক স্থানটি পৃথিবী হয় এবং আপনার দূরত্বগুলি ট্রান্সফার হয় -কন্টিনেন্টাল ফ্লাইটস, একটি মেরু স্থানাঙ্ক ব্যবস্থার জন্য উপযুক্ত একটি দূরত্বের মেট্রিক একটি ভাল ধারণা (উদাহরণস্বরূপ, লন্ডন থেকে ভিয়েনা হয় 2.5 ঘন্টা, ভিয়েনা থেকে সেন্ট পিটার্সবার্গ একই পথে আরও 3 ঘন্টা, কম বা কম, লন্ডন থেকে সেন্ট পিটার্সবার্গ 5.5 ঘন্টা নয়, পরিবর্তে, 3 ঘন্টা থেকে কিছুটা কম is

তবে আপনার ডেটা কোনও নন-কার্টেসিয়ান সমন্বয় ব্যবস্থাতে অন্তর্ভুক্ত রয়েছে সেগুলি ছাড়াও দূরত্বের মেট্রিকের পছন্দটি সাধারণত উপাদান নয়। ( সিএনএসের এই শিক্ষার্থীর কাছ থেকে এই ব্লগ পোস্টটি দেখুন , কেএনএন শ্রেণিবদ্ধে তাদের প্রভাব পরীক্ষা করে বিভিন্ন দূরত্বের মেট্রিকের তুলনা করে - চি স্কোয়ার সেরা ফলাফল দেয় তবে পার্থক্যগুলি বড় নয়; আরও বিস্তৃত গবেষণাটি একাডেমিক গবেষণাপত্রে রয়েছে, তুলনামূলক অধ্যয়ন নিকটতম প্রতিবেশীদের জন্য দূরত্ব ফাংশন দূরত্বের কার্যাদি - মহালানোবিস (মূলত ইউক্লিডিয়ানকে সাধারণ মাত্রার সাথে সম্পর্কিত হিসাবে চিহ্নিত করা) এই সমীক্ষায় সেরা ছিল।

একটি গুরুত্বপূর্ণ প্রভিসো: দূরত্বের মেট্রিক গণনা অর্থবহ হওয়ার জন্য, আপনাকে অবশ্যই আবশ্যক পুনরায় স্কেলআপনার ডেটা - এটি না করে সঠিক ভবিষ্যদ্বাণী উত্পন্ন করতে খুব কমই কোনও কেএনএন মডেল তৈরি করা সম্ভব। উদাহরণস্বরূপ, যদি আপনি অ্যাথলেটিক পারফরম্যান্সের পূর্বাভাস দেওয়ার জন্য কেএনএন মডেল তৈরি করে চলেছেন এবং আপনার প্রত্যাশা ভেরিয়েবলগুলি উচ্চতা (সেমি), ওজন (কেজি), বডিফ্যাট (%) এবং বিশ্রামের নাড়ি (প্রতি মিনিটে বীট) হয় তবে একটি সাধারণ ডেটা পয়েন্ট হতে পারে এর মতো কিছু দেখুন: [180.4, 66.1, 11.3, 71]। স্পষ্টতই দূরত্বের গণনাটি উচ্চতা দ্বারা প্রাধান্য পাবে, যখন বডিফ্যাট% এর অবদান প্রায় নগণ্য হবে। অন্য কোনও উপায়ে বলুন, যদি পরিবর্তে, ডেটাগুলি আলাদাভাবে জানানো হয়, যাতে শরীরের ওজন কিলোগ্রামের চেয়ে গ্রামে ছিল, তবে 86.1 এর মূল মূল্য হবে 86,100, যা আপনার ফলাফলগুলিতে একটি বড় প্রভাব ফেলবে, যা ঠিক আপনি ডোন করেন না চাই না।

X_new = (X_old - mu) / sigma


২। ডেটা স্ট্রাকচার

আপনি যদি কেডি-ট্রি স্ট্রাকচারের পারফরম্যান্স সম্পর্কে উদ্বিগ্ন হন তবে একটি ভোরোনাই টেসলেশন হ'ল একটি ধারণাগত সাধারণ পাত্রে তবে এটি ক্রমশই পারফরম্যান্সকে উন্নত করবে এবং কেডি-ট্রিগুলির চেয়ে আরও ভাল আঁকবে।

দেয়

কেএনএন প্রশিক্ষণ ডেটা অব্যাহত রাখার পক্ষে এটি সবচেয়ে সাধারণ উপায় নয়, যদিও এই উদ্দেশ্যে ভিটি প্রয়োগ এবং তত্ক্ষণাত পারফরম্যান্সের সুবিধাগুলি যথাযথভাবে ডকুমেন্টেড রয়েছে (দেখুন এই মাইক্রোসফ্ট গবেষণা প্রতিবেদনটি দেখুন )। এর ব্যবহারিক তাত্পর্যটি হ'ল, যদি আপনি 'মূলধারার' ভাষা ব্যবহার করেন (যেমন, টিআইওবি সূচীতে ) তবে আপনার ভিটি সঞ্চালনের জন্য একটি গ্রন্থাগার খুঁজে পাওয়া উচিত। আমি পাইথন এবং আরে জানি, প্রতিটি ভাষার জন্য একাধিক বিকল্প রয়েছে (যেমন, সিআরএএন- তে উপলব্ধ আর এর জন্য ভোরোনাই প্যাকেজ )

কেএনএন-এর জন্য ভিটি ব্যবহার করে এটি ::

আপনার ডেটা থেকে, এলোমেলোভাবে ডাব্লু পয়েন্ট নির্বাচন করুন - এগুলি আপনার ভোরোনাই কেন্দ্র। একটি ভোরোনাই সেল প্রতিটি কেন্দ্রের নিকটবর্তী সমস্ত প্রতিবেশী পয়েন্টগুলিকে আবদ্ধ করে। কল্পনা করুন আপনি যদি প্রতিটি ভোরোনাই কেন্দ্রে আলাদা আলাদা রঙ বরাদ্দ করেন, যাতে প্রদত্ত কেন্দ্রের জন্য নির্ধারিত প্রতিটি বিন্দু সেই রঙটি আঁকতে পারে। যতক্ষণ না আপনার পর্যাপ্ত ঘনত্ব থাকে, এই কাজটি প্রতিটি ভোরোনাই কেন্দ্রের সীমানাটি সুন্দরভাবে প্রদর্শন করবে (দুটি সীমা পৃথককারী সীমানা হিসাবে)।

ভোরোনাই কেন্দ্রগুলি কীভাবে নির্বাচন করবেন? আমি দুটি orthogonal নির্দেশিকা ব্যবহার করি। ডাব্লু পয়েন্টগুলি এলোমেলোভাবে নির্বাচনের পরে, আপনার প্রশিক্ষণের ডেটার জন্য ভিটি গণনা করুন। পরবর্তী প্রতিটি ভোরোনাই কেন্দ্রে নির্ধারিত ডেটা পয়েন্টের সংখ্যাটি পরীক্ষা করে দেখুন - এই মানগুলি একইরকম হওয়া উচিত (আপনার ডেটা স্পেস জুড়ে ইউনিফর্ম পয়েন্টের ঘনত্ব দেওয়া)। দুটি মাত্রায়, এটি একই আকারের টাইলগুলির সাথে একটি ভিটি সৃষ্টি করবে hat এটিই প্রথম নিয়ম, এখানে দ্বিতীয়। পুনরাবৃত্তির মাধ্যমে ডাব্লু নির্বাচন করুন - আপনার কেএনএন অ্যালগরিদমকে ডাব্লু দিয়ে একটি চলক প্যারামিটার হিসাবে চালান, এবং কর্মক্ষমতা পরিমাপ করুন (ভিটি-কে জিজ্ঞাসাবাদ করে পূর্বাভাস ফেরানোর জন্য প্রয়োজনীয় সময়)।

সুতরাং কল্পনা করুন আপনার দশ মিলিয়ন ডেটা পয়েন্ট রয়েছে ..... পয়েন্টগুলি যদি সাধারণ 2 ডি ডেটা কাঠামোতে বা কেডি-ট্রিতে অবিরত থাকে তবে আপনি গড়ে কয়েক মিলিয়ন দূরত্ব গণনা সম্পাদন করবেন প্রতিটিরনতুন ডেটা পয়েন্ট যার প্রতিক্রিয়া পরিবর্তনশীল আপনি পূর্বাভাস দিতে চান। অবশ্যই, সেই গণনাগুলি একটি একক ডেটা সেটে সঞ্চালিত হয়। একটি ভি / টি দিয়ে, নিকটতম প্রতিবেশী অনুসন্ধান একের পর এক দুটি ধাপে সঞ্চালিত হয়, দুটি পৃথক জনসংখ্যার উপাত্তের বিরুদ্ধে - প্রথমে ভোরোনাই কেন্দ্রগুলির বিরুদ্ধে, তারপরে নিকটতম কেন্দ্রটি পাওয়া গেলে, কোষের সাথে সম্পর্কিত পয়েন্টগুলি খুঁজে পাওয়া যায় সেই কেন্দ্রটি প্রকৃত নিকটতম প্রতিবেশী (ক্রমাগত দূরত্ব গণনার দ্বারা) সন্ধান করতে অনুসন্ধান করা হয়, একত্রিত, এই দুটি চেহারা আপ একক ব্রুট-ফোর্স লুক-আপের চেয়ে অনেক দ্রুত। এটি দেখতে সহজ: 1M ডেটা পয়েন্টগুলির জন্য, ধরুন আপনি আপনার ডেটার স্পেসটি পরীক্ষা করার জন্য 250 ভোরোনাই কেন্দ্র নির্বাচন করেছেন। গড়ে প্রতিটি ভোরোনাই কোষে 4,000 ডেটা পয়েন্ট থাকবে। সুতরাং গড়ে 500,000 দূরত্ব গণনা (ব্রুট ফোর্স) সঞ্চালনের পরিবর্তে, আপনি গড়ে মাত্র 125 + 2000 এর চেয়ে কম পারফর্ম করেন।

তৃতীয়। ফলাফল গণনা করা (পূর্বাভাসের প্রতিক্রিয়া ভেরিয়েবল)

কেএনএন প্রশিক্ষণ ডেটার সেট থেকে পূর্বাভাসিত মান গণনা করার জন্য দুটি পদক্ষেপ রয়েছে। প্রথমটি এন, বা এই গণনার জন্য ব্যবহার করার জন্য নিকটতম প্রতিবেশীর সংখ্যা চিহ্নিত করছে । দ্বিতীয়টি হ'ল পূর্বাভাসিত মানটিতে তাদের অবদানকে কীভাবে ওজন করা যায়।

প্রথম উপাদান ডাব্লু / আর / টি, আপনি একটি অপ্টিমাইজেশান সমস্যা সমাধানের মাধ্যমে এন এর সেরা মান নির্ধারণ করতে পারেন (কমপক্ষে স্কোয়ার অপ্টিমাইজেশানের সাথে খুব অনুরূপ)। এটাই তত্ত্ব; অনুশীলনে, বেশিরভাগ লোকেরা কেবল n = 3 ব্যবহার করেন। যে কোনও ইভেন্টে, n = 1, n = 2, n = 3 ইত্যাদির জন্য পরীক্ষার উদাহরণগুলির একটি সেট (পূর্বাভাসিত মানগুলি গণনা করার জন্য) এর উপরে আপনার কেএনএন অ্যালগরিদম চালানো এবং এন এর ক্রিয়া হিসাবে ত্রুটিটিকে প্লট করা সহজ। আপনি যদি শুরু করতে n এর জন্য একটি জলদি মান চান তবে আবারও n = 3 ব্যবহার করুন।

দ্বিতীয় উপাদানটি হ'ল প্রতিবেশীর প্রত্যেকের অবদানকে কীভাবে ওজন করা যায় (ধরে নেওয়া n> 1)।

সবচেয়ে সহজ ওজন কৌশল প্রতিটি প্রতিবেশীকে কেবল একটি ওজন সহগ দ্বারা গুণিত করে যা কেবল 1 / (ডিস্ট * কে) হয়, বা সেই প্রতিবেশী থেকে পরীক্ষার দুরত্বের বিপরীতটি প্রায়শই কিছু অনুভূতভাবে উত্পন্ন ধ্রুবক, কে I দ্বারা গুণিত হয় I এই কৌশলটির অনুরাগী না কারণ এটি প্রায়শই নিকটতম প্রতিবেশীদের অতিরিক্ত ওজন করে (এবং একযোগে আরও বেশি দূরবর্তী ওজনের); এর তাত্পর্যটি হ'ল প্রদত্ত ভবিষ্যদ্বাণীটি সম্পূর্ণরূপে একক প্রতিবেশীর উপর নির্ভরশীল হতে পারে, যার ফলে শব্দে অ্যালগরিদমের সংবেদনশীলতা বৃদ্ধি পায়।

একটি অবশ্যই আরও ভাল ওজন ফাংশন, যা এই সীমাবদ্ধতাটি যথেষ্ট পরিমাণে এড়িয়ে চলে তা হ'ল গাউসিয়ান ফাংশন , যা পাইথনটিতে এই রকম দেখাচ্ছে:

def weight_gauss(dist, sig=2.0) :
    return math.e**(-dist**2/(2*sig**2))

আপনার কেএনএন কোড ব্যবহার করে পূর্বাভাসিত মান গণনা করতে, আপনি নিকটতম প্রতিবেশীদের ডেটা পয়েন্টের শনাক্ত করতে পারবেন যার প্রতিক্রিয়া ভেরিয়েবলটি আপনি ভবিষ্যদ্বাণী করতে চান ('পরীক্ষার উদাহরণ'), তারপরে প্রতিটি এন এর প্রতিবেশীর জন্য একবার ওয়েট_গাউস ফাংশনটি কল করুন প্রতিটি প্রতিবেশীর মধ্যবর্তী দূরত্বে পরীক্ষার বিন্দু T এই ফাংশনটি প্রতি প্রতিবেশীর জন্য ওজন ফিরিয়ে দেবে, যা পরে ওজনযুক্ত গড় গণিতে সেই প্রতিবেশীর সহগ হিসাবে ব্যবহৃত হয়।


2
দুর্দান্ত উত্তর! আমার অভিজ্ঞতার সাথে বিস্তৃত এবং নির্ভুল relative
টেড ডানিং 21

নিস উত্তর +1, আমি একটি নতুন আরো সাম্প্রতিক উত্তর যোগ এখানে , এটা ভাল?
gsamaras

1
"সুতরাং আপনার দশ মিলিয়ন ডেটা পয়েন্ট রয়েছে তা কল্পনা করুন ..... পয়েন্টগুলি যদি সাধারণ 2 ডি তথ্য কাঠামোতে বা কেডি-ট্রিতে অবিরত থাকে তবে আপনি প্রতিটি নতুন ডাটা পয়েন্টের জন্য গড়ে কয়েক মিলিয়ন দূরত্ব গণনা সম্পাদন করবেন যার প্রতিক্রিয়া পরিবর্তনশীল আপনি ভবিষ্যদ্বাণী করতে চান। " একমত নন। এটি প্রমাণিত হতে পারে যে কেডি-ট্রিগুলিতে O(sqrt(n))2D তে অনুসন্ধানের জটিলতা রয়েছে।
এন্টোইন

16

আপনি যা মুখোমুখি হচ্ছেন তা মাত্রিকতার অভিশাপ হিসাবে পরিচিত । আপনার পিসিএ বা আইসিএর মতো অ্যালগরিদম চালানোর জন্য কখনও কখনও দরকারী যে এটি নিশ্চিত করতে যে আপনার সত্যই 21 টি মাত্রা প্রয়োজন এবং সম্ভবত একটি রৈখিক রূপান্তর যা আপনাকে প্রায় একই ফলাফলের মানের সাথে 21 এরও কম ব্যবহার করতে দেয়।

আপডেট: আমি তাদের সাথে রাঙ্গায়ণের বায়োমেডিকাল সিগন্যাল প্রসেসিং নামে একটি বইতে মুখোমুখি হয়েছিলাম (আমি আশা করি এটি সঠিকভাবে মনে পড়ে)। আইসিএ কোনও তুচ্ছ কৌশল নয়, তবে এটি ফিনল্যান্ডের গবেষকরা তৈরি করেছেন এবং আমি মনে করি যে এটির জন্য মতলব কোডটি প্রকাশ্যে ডাউনলোডের জন্য উপলব্ধ। পিসিএ একটি বহুল ব্যবহৃত কৌশল এবং আমি বিশ্বাস করি এটির আর বা অন্যান্য সফ্টওয়্যার বাস্তবায়ন আপনার সন্ধান করা উচিত। পিসিএ লিনিয়ার সমীকরণগুলি পুনরাবৃত্তভাবে সমাধান করে সঞ্চালিত হয়। আমি কিভাবে এটি মনে করতে অনেক আগে করেছি। =)

ধারণাটি হ'ল আপনি আপনার সিগন্যালগুলি স্বাধীন ইগেনভেেক্টরগুলিতে (বিচ্ছিন্ন ইগেনফিউশনস, সত্যই) এবং তাদের আইজভ্যালুগুলিতে আপনার ক্ষেত্রে 21 কেটে ফেলবেন। প্রতিটি ইগেনুয়ালু প্রতিটি পরিমাপ আপনার প্রতিটি পরিমাপের জন্য যে পরিমাণ অবদান সরবরাহ করে তা দেখায়। যদি কোনও ইগেনভ্যালু ক্ষুদ্র হয় তবে আপনি এর সাথে সম্পর্কিত ইগনফংশনটি ব্যবহার না করেই সংকেতগুলি খুব ঘনিষ্ঠভাবে উপস্থাপন করতে পারেন এবং এভাবেই আপনি একটি মাত্রা থেকে মুক্তি পাবেন।


+1 আপনাকে ধন্যবাদ। এটি একটি খুব আকর্ষণীয় পরামর্শ এবং সঠিক ধারণা দেয় sense চূড়ান্ত অনুরোধ হিসাবে, আপনি কি কোনও হ্যান্ডস অন টিউটোরিয়াল (পাইথন বা আর বা অন্য কোনও ভাষায়) এর সাথে পরিচিত যা এই ইন্টারেক্টিভভাবে কীভাবে করতে হয় তা ব্যাখ্যা করে (আমি পুরো প্রক্রিয়াটি ধাপে ধাপে ব্যাখ্যা করার অর্থ)। গতকাল থেকে আমি কয়েকটি নথি পড়েছি তবে সেগুলির বেশিরভাগই আমার বোধগম্য। কোনও পরামর্শ?
কিংবদন্তি

4
নিতপিকিং: আইসিএ একটি মাত্রা হ্রাস অ্যালগরিদম নয়। এটি কীভাবে উপাদানগুলি স্কোর করতে হয় তা জানে না এবং এটির মতো ব্যবহার করা উচিত নয়।
গেইল ভেরাকোয়াক্স

12

শীর্ষস্থানীয় উত্তরগুলি ভাল তবে পুরানো, তাই আমি একটি 2016 উত্তর যুক্ত করতে চাই ।


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


উত্তপ্ত বিষয়গুলি উপযুক্ত হতে পারে:

  1. এলএসএইচ-এর আধুনিক পদ্ধতি , যেমন রাজেনস্টেনের
  2. আরকেডি বন : এফএলএনএনে বর্ণিত র্যান্ডমাইজড কেডি ট্রি ( আরকেডি ) এর বন (গুলি) , বা আরও সাম্প্রতিক পদ্ধতির মধ্যে আমি কেডি-জিআরএএফ-এর অংশ ছিল ।
  3. এলওপিকিউ যা এখানে বর্ণিত হিসাবে স্থানীয়ভাবে অনুকূলিত পণ্য কোয়ান্টাইজেশনকে বোঝায় । এটি নতুন বাবেঙ্কো + লেমিটিটস্কির পদ্ধতির সাথে খুব মিল ।

আপনি আমার প্রাসঙ্গিক উত্তরগুলিও পরীক্ষা করতে পারেন:

  1. উচ্চ মাত্রিক পয়েন্টের দুটি সেট: অন্য সেটটিতে নিকটতম প্রতিবেশী সন্ধান করুন
  2. বিভিন্ন ডেটা স্ট্রাকচারের নিকটতম নিকটবর্তী প্রশ্নের ক্যারিয়ারের রানটাইমের তুলনা
  3. পিসিএল কেডি-ট্রি বাস্তবায়ন অত্যন্ত ধীর গতিতে

8

এক এক করে আপনার প্রশ্নের উত্তর দিতে:

  • না, ইউক্লিডিয়ান দূরত্ব উচ্চ মাত্রার জায়গাতে খারাপ মেট্রিক। মূলত উচ্চ মাত্রায়, ডেটা পয়েন্টগুলির একে অপরের মধ্যে বড় পার্থক্য থাকে। এটি প্রদত্ত ডেটা পয়েন্ট এবং এর নিকটতম এবং সবচেয়ে দূরের প্রতিবেশীর মধ্যে দূরত্বের তুলনামূলক পার্থক্য হ্রাস করে।
  • উচ্চ মাত্রার তথ্যগুলিতে প্রচুর কাগজপত্র / গবেষণা থাকে তবে বেশিরভাগ স্টাফের জন্য প্রচুর গাণিতিক পরিশীলনের প্রয়োজন হয়।
  • কেডি ট্রি উচ্চ মাত্রিক ডেটার জন্য খারাপ ... সমস্ত উপায়ে এটি এড়ান

আপনাকে সঠিক পথে শুরু করার জন্য একটি দুর্দান্ত কাগজ এখানে। " নিকটে নিকটবর্তী অর্থবহ কখন ?" বায়ার এবং সমস্ত দ্বারা।

আমি 20k এবং এর বেশি মাত্রার টেক্সট ডেটা নিয়ে কাজ করি। আপনি যদি কিছু পাঠ্য সম্পর্কিত পরামর্শ চান তবে আমি আপনাকে সাহায্য করতে সক্ষম হতে পারি।


1
+1 আমি এখন এই কাগজটি পড়তে মুদ্রণ করছি। মাঝামাঝি সময়ে, আপনার নিকটবর্তী প্রতিবেশীদের কীভাবে সনাক্ত করা যায় সে সম্পর্কে কী পরামর্শ রয়েছে? যদি দূরত্বের মেট্রিক এবং প্রতিবেশীর সংজ্ঞা উভয়ই ত্রুটিযুক্ত থাকে তবে লোকেরা সাধারণত উচ্চতর মাত্রার সমস্যাগুলি কীভাবে সমাধান করবেন যেখানে তারা বৈশিষ্ট্য ভেক্টরের ভিত্তিতে আনুমানিক মিল করতে চান? কোনও পরামর্শ?
কিংবদন্তি

1
পাঠ্যের ক্ষেত্রে আমরা প্রচুর পরিমাণে কোসাইন ব্যবহার করি। আমি নিজে পাঠ্য শ্রেণীবদ্ধকরণে কাজ করছি এবং উচ্চ মাত্রার জন্য, লিনিয়ার কার্নেল সহ এসভিএম সবচেয়ে কার্যকর বলে মনে হচ্ছে seem
বিজিওয়ান

@ বিজিওয়ান আপনি কীভাবে আপনার স্থানটিকে সংজ্ঞায়িত করবেন। মানে ভেক্টর বা এম্বেড ভেক্টরের শব্দের উপর ভিত্তি করে?
ব্যবহারকারী 3487667

@ ব্যবহারকারী 3487667, স্থানটি নির্ভর করে আপনি কীভাবে আপনার সমস্যা তৈরি করবেন। আমি কথা বলছিলাম একটি সাধারণ ব্যাগ অফ-ওয়ার্ড মডেল সম্পর্কে।
বিজিওয়ান

5

উচ্চ মাত্রার ভেক্টরগুলির সাথে তুলনা করার জন্য কোসিনের সাদৃশ্য একটি সাধারণ উপায়। দ্রষ্টব্য যেহেতু এটি একটি মিল একটি দূরত্ব নয়, তাই আপনি এটি সর্বোচ্চ করতে চান এটি হ্রাস করবেন না। আপনি ডেটা তুলনা করার জন্য একটি ডোমেন-নির্দিষ্ট উপায়ও ব্যবহার করতে পারেন, উদাহরণস্বরূপ যদি আপনার ডেটা ডিএনএ সিকোয়েন্সস হয় তবে আপনি এমন ক্রম সাম্যতা ব্যবহার করতে পারেন যা পরিব্যক্তিগুলির সম্ভাব্যতাগুলিকে বিবেচনা করে ইত্যাদি takes

ব্যবহারের জন্য নিকটতম প্রতিবেশীর সংখ্যার উপর নির্ভর করে উপাত্তের ধরণ, কত শব্দ রয়েছে ইত্যাদি নির্ভর করে etc. কোনও সাধারণ নিয়ম নেই, আপনার সীমাবদ্ধতার মধ্যে সমস্ত মান চেষ্টা করে আপনার নির্দিষ্ট ডেটা এবং সমস্যার জন্য সবচেয়ে কার্যকর কী তা খুঁজে বের করতে হবে you । লোকেরা একটি স্বজ্ঞাত জ্ঞান আছে যে যত বেশি ডেটা রয়েছে, আপনার খুব কম প্রতিবেশী প্রয়োজন। একটি কাল্পনিক পরিস্থিতিতে যেখানে আপনার সমস্ত সম্ভাব্য ডেটা রয়েছে, আপনাকে শ্রেণিবদ্ধকরণের জন্য কেবল নিকটতম নিকটবর্তী প্রতিবেশীর সন্ধান করতে হবে।

কে নিকটবর্তী নিকটবর্তী পদ্ধতিটি গণনামূলকভাবে ব্যয়বহুল হিসাবে পরিচিত। সমর্থন ভেক্টর মেশিনের মতো লোকেরা অন্যান্য অ্যালগরিদমে ফিরে যাওয়ার এটি অন্যতম প্রধান কারণ।


এটা মজার. আমি কীভাবে আমার ক্ষেত্রে এসভিএম ব্যবহার করতে পারি সে সম্পর্কে আপনি কী আরও বিস্তারিত বলতে পারেন? আমি ভেবেছিলাম কে-নিকটতম প্রতিবেশীরা আরও নিরীক্ষণ করা এবং এসভিএমগুলি তদারকি করা হয়। আমি ভুল হলে আমাকে সংশোধন করুন।
কিংবদন্তি

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

সুস্পষ্ট করার জন্য ধন্যবাদ. তুমি ঠিক. এটি প্রকৃতপক্ষে তদারকি কৌশল technique আমি কেবল বুঝতে পারি নি আমি কী নামে
কিংবদন্তি

4

কেডি-ট্রি প্রকৃতপক্ষে উচ্চ-মাত্রিক ডেটাতে খুব ভাল কাজ করবে না। কারণ ছাঁটাই পদক্ষেপটি এখন আর খুব বেশি সাহায্য করে না, নিকটতম প্রান্ত হিসাবে - একটি 1 মাত্রিক বিচ্যুতি - প্রায় সর্বদা পরিচিত নিকটবর্তী প্রতিবেশীদের সম্পূর্ণ মাত্রিক বিচ্যুতির চেয়ে ছোট হবে।

তবে তদ্ব্যতীত, কেডি-ট্রিগুলি কেবলমাত্র আমি জানি সকলের জন্য এলপি নিয়মগুলির সাথে ভালভাবে কাজ করে and

আরও তথ্যের জন্য, আপনি মাত্রিকতার অভিশাপ এবং এর বিভিন্ন রূপগুলি পড়তে চাইতে পারেন (এর একাধিক দিক রয়েছে!)

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


আপনার কি আপনার প্রথম এবং দ্বিতীয় অনুচ্ছেদের জন্য রেফারেন্স রয়েছে?
ছক

না, তবে তারা সাধারণ "মাত্রিকতার অভিশাপ" ইনস্ট্যান্টেশন (সিএফ, সমীক্ষা ) থেকে মোটামুটি স্পষ্ট হওয়া উচিত এবং ইউ কেলিডিয়ান ছাড়া অন্য যে কোনও কিছুকে সমর্থন করে এমন কোনও কেডি-ট্রি সন্ধান করার চেষ্টা করুন ... অন্যান্য দূরত্বকে সমর্থন করা সম্ভব, তবে সাধারণ নয় (ELKI সমস্ত মিনকোভস্কি দূরত্ব + স্কোয়ারড ইউক্লিডিয়ানকে অনুমতি দেয় তবে বেশিরভাগের কাছে কেবল ইউক্লিডিয়ান থাকবে। কেবল বিবেচনা করুন যে কেডি-ট্রি কেবলমাত্র ছাঁটাই করার জন্য একটি মাত্রা ব্যবহার করে এবং এটি সমস্ত মাত্রা জড়িত দূরত্বের সাথে তুলনা করে । এছাড়াও, আপনার স্প্লিটগুলি প্রতিটি মাত্রায় বিভক্ত করতে সক্ষম হবে না।
এরিচ শুবার্ট

3

আপনি কেন নিকটতম প্রতিবেশীদের জানতে চান তার উপর অনেক কিছুই নির্ভর করে। আপনি কী চান তা যদি আপনার ডেটা সেটের মোডগুলি সন্ধান করতে হয় তবে আপনি যদি গড় শিফট অ্যালগরিদম http://en.wikedia.org/wiki/Mean-shift দেখতে পারেন।


2
আমি যতদূর জানি মিড-শিফট উচ্চ মাত্রিক ডেটা ক্লাস্টারিংয়ের জন্য উপযুক্ত নয়। কে-মিনস আরও ভাল পছন্দ হতে পারে।
fdermishin

3

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


3

উচ্চ মাত্রিক ডেটাতে সঠিক বোনা পুনরুদ্ধারের জন্য iDistance সম্ভবত সেরা। আপনি এটি আনুমানিক ভোরোনাই প্রবন্ধ হিসাবে দেখতে পারেন।


3

আমি একই সমস্যাটি অনুভব করেছি এবং নিম্নলিখিতটি বলতে পারি।

  1. ইউক্লিডিয়ান দূরত্বটি একটি ভাল দূরত্বের মেট্রিক, তবে এটি ম্যানহাটনের দূরত্বের তুলনায় গণনাগতভাবে আরও ব্যয়বহুল এবং কখনও কখনও কিছুটা দরিদ্র ফলাফলও পাওয়া যায়, সুতরাং আমি পরবর্তীটি বেছে নেব।

  2. K এর মানটি অনুগতভাবে পাওয়া যাবে। আপনি গ্রহণযোগ্য মান খুঁজে পেতে বিভিন্ন মান চেষ্টা করতে পারেন এবং ফলিত আরওসি বক্ররেখা বা কিছু অন্যান্য নির্ভুলতা / রিক্যাল পরিমাপ পরীক্ষা করতে পারেন ।

  3. ইউক্লিডিয়ান এবং ম্যানহাটন উভয়ই দূরত্বে ত্রিভুজ বৈষম্যকে সম্মান করে , সুতরাং আপনি এগুলি মেট্রিক গাছগুলিতে ব্যবহার করতে পারেন। প্রকৃতপক্ষে, কেডি-ট্রিগুলির কার্যকারিতা মারাত্মকভাবে হ্রাস পেয়েছে যখন ডেটা 10-এর বেশি মাত্রা থাকে (আমি নিজেই সেই সমস্যাটি अनुभव করেছি)। আমি ভিপি-ট্রিগুলিকে আরও ভাল বিকল্প হিসাবে পেয়েছি ।


3

কেডি ট্রি 21 টি মাত্রার জন্য সূক্ষ্মভাবে কাজ করে, আপনি যদি প্রথম দিকে প্রস্থান করেন তবে সমস্ত পয়েন্টের 5% বলে দেখুন। এফএলএএনএন 128-ম্লান SIFT ভেক্টরগুলির সাথে মেলে এটি (এবং অন্যান্য স্পিডআপগুলি) করে। (দুর্ভাগ্যক্রমে এফএলএএনএন কেবলমাত্র ইউক্যালিডিয়ান মেট্রিক করে এবং দ্রুত এবং শক্ত স্কিপি.স্প্যাটিসিএল.কেডিটি কেবল এলপি মেট্রিকগুলি করে; এটি আপনার পক্ষে পর্যাপ্ত হতে পারে বা নাও হতে পারে) ডেটার )) এখানে অবশ্যই গতি-নির্ভুলতার ট্রেড অফ রয়েছে।

(যদি আপনি আপনার এনডাটা, এনকোয়ারি, ডেটা বিতরণ বর্ণনা করতে পারেন যা লোকেদের অনুরূপ ডেটা চেষ্টা করতে সহায়তা করতে পারে))

সম্ভাব্যতার খুব রুক্ষ ধারণা দেওয়ার জন্য, আমার পুরানো ম্যাক পিপিসি-তে কাট অফ দিয়ে সিকেডিট্রি-র জন্য সময় চালানো 26 এপ্রিল

kdstats.py p=2 dim=21 N=1000000 nask=1000 nnear=2 cutoff=1000 eps=0 leafsize=10 clustype=uniformp
14 sec to build KDtree of 1000000 points
kdtree: 1000 queries looked at av 0.1 % of the 1000000 points, 0.31 % of 188315 boxes; better 0.0042 0.014 0.1 %
3.5 sec to query 1000 points
distances to 2 nearest: av 0.131  max 0.253

kdstats.py p=2 dim=21 N=1000000 nask=1000 nnear=2 cutoff=5000 eps=0 leafsize=10 clustype=uniformp
14 sec to build KDtree of 1000000 points
kdtree: 1000 queries looked at av 0.48 % of the 1000000 points, 1.1 % of 188315 boxes; better 0.0071 0.026 0.5 %
15 sec to query 1000 points
distances to 2 nearest: av 0.131  max 0.245

2

আপনি আজ অর্ডার বক্ররেখার চেষ্টা করতে পারেন। এটি 3 মাত্রার পক্ষে সহজ।


0

ইউক্লিডিয়ান দূরত্ব প্রথম স্থানে নিকটতম প্রতিবেশীদের সন্ধানের জন্য কি ভাল মেট্রিক? যদি তা না হয় তবে আমার বিকল্পগুলি কী কী?

আমি নরম সাবস্পেস ক্লাস্টারিংয়ের পরামর্শ দেব , আজকাল একটি খুব সাধারণ পন্থা, যেখানে সর্বাধিক প্রাসঙ্গিক মাত্রাগুলি সন্ধানের জন্য বৈশিষ্ট্য ওজন গণনা করা হয়। ইউক্লিডিয়ান দূরত্ব ব্যবহার করার সময় আপনি এই ওজনগুলি ব্যবহার করতে পারেন, উদাহরণস্বরূপ। সাধারণ সমস্যার জন্য মাত্রিকতার অভিশাপ দেখুন এবং এই নিবন্ধটি আপনাকে কোনওভাবে আলোকিত করতে পারে:

মিশ্র সংখ্যাসূচক এবং শ্রেণিবদ্ধ ডেটাসেটের সাবস্পেস ক্লাস্টারিংয়ের জন্য কে-মানে টাইপ ক্লাস্টারিং অ্যালগরিদম

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