K-মানে || ওরফে স্কেলেবল কে-মিনস ++


12

বাহমান বাহমানি এট আল। প্রবর্তিত কে-ই অর্থ ||, যা কে-মানে ++ এর একটি দ্রুত সংস্করণ।

কে-অর্থের সূচনা ||

এই অ্যালগরিদমটি তাদের কাগজের বহমানী, বি, মোসলেি, বি।, ভাত্তানী, এ।, কুমার, আর, এবং ভ্যাসিলভিটস্কি, এস (2012) থেকে নেওয়া হয়েছে। স্কেলেবল কে-মানে ++। ভিএলডিবি এন্ডোমেন্টের কার্যক্রম , 5 (7), 622-633।

দুর্ভাগ্যক্রমে আমি এই অভিনব গ্রীক অক্ষরগুলি বুঝতে পারি না, সুতরাং এটি কীভাবে কাজ করে তা বুঝতে আমার কিছুটা সহায়তা দরকার। যতদূর আমি বুঝতে পারি এই অ্যালগরিদমটি কে-মানে ++ এর একটি উন্নত সংস্করণ, এবং এটি পুনরাবৃত্তির সংখ্যা হ্রাস করতে ওভারস্যাম্পলিং ব্যবহার করে: কে-মানে ++ বার পুনরাবৃত্তি করতে হবে , যেখানে কাঙ্ক্ষিত ক্লাস্টারের সংখ্যা।কেkk

কে-মানে ++ কীভাবে কাজ করে তার একটি দৃ concrete় উদাহরণের মাধ্যমে আমি খুব ভাল ব্যাখ্যা পেয়েছি , সুতরাং আমি একই উদাহরণটি আবার ব্যবহার করব।

উদাহরণ

আমার কাছে নিম্নলিখিত ডেটাসেট রয়েছে:

(7,1), (3,4), (1,5), (5,8), (1,3), (7,8), (8,2), (5,9), (8) , 0)

k=3 (পছন্দসই ক্লাস্টারের সংখ্যা)

=2 (ওভার স্যাম্পলিং ফ্যাক্টর)

কে-মানে জন্য ডেটা সেট উদাহরণ উদাহরণস্বরূপ ||

আমি এটি গণনা করতে শুরু করেছিলাম তবে আমি এটি সঠিকভাবে পেয়েছি কিনা তা নিশ্চিত নই এবং আমার পদক্ষেপ 2, 4, বা 5 সম্পর্কে কোনও ধারণা নেই।

  • পদক্ষেপ 1: নমুনা বিন্দু থেকে বিন্দুতে থেকে এলোমেলোভাবেএক্সCX

    ধরা যাক প্রথম (কে-মানে ++ এর সমান)(8,0)

  • পদক্ষেপ 2:ψϕX(C)

    কোন ধারনা নাই

  • ধাপ 3:

    • d2(x,C)=[2,41,74,73,58,65,4,90]

      আমরা প্রতিটি বিন্দুর নিকটতম কেন্দ্রে স্কোয়ার দূরত্ব গণনা করি। এই ক্ষেত্রে আমাদের এখনও পর্যন্ত একটি কেন্দ্র রয়েছে, ।(8,0)

    • d2(x,C)=[4,81,148,146,116,130,8,180]

      (কারণ এ ক্ষেত্রে ))=2

    • cumulative d2(x,C)=[4,85,233,379,495,625,633,813]

      বিরতিতে এলোমেলোভাবে এলোমেলো সংখ্যা বাছুন । বলুন আপনি এবং বেছে । এগুলি এবং যা যথাক্রমে চতুর্থ এবং অষ্টম আইটেমের সাথে মিল রয়েছে।[ 0 , 813 ) 246.90 659.42 [ 379 , 495 ) [ 633 , 813 )=2[0,813)246.90659.42[379,495)[633,813)

    • এটি বার বার করুন, তবে এক্ষেত্রে ψ (দ্বিতীয় ধাপে গণনা করা) কী? O(logψ)ψ

  • ধাপ 4: জন্য , সেট W X বিন্দুর সংখ্যা হতে এক্স কাছাকাছি এক্স অন্য কোন বিন্দু চেয়ে সিxCwxXxC
  • পদক্ষেপ 5: মধ্যে Recluster ভরযুক্ত পয়েন্ট মধ্যে ক্লাস্টার।Ck

সাধারণভাবে বা এই বিশেষ উদাহরণে কোনও সহায়তা দুর্দান্ত হবে।

উত্তর:


10

ডেটা পয়েন্ট: (7,1), (3,4), (1,5), (5,8), (1,3), (7,8), (8,2), (5,9) (8,0)

l = 2 // ওভার স্যাম্পলিং ফ্যাক্টর

k = 3 // নং। কাঙ্ক্ষিত গুচ্ছের

ধাপ 1:

ধরুন প্রথম centroid হয় হল { 1 } = { ( 8 , 0 ) }এক্স = { x 1 , এক্স 2 , এক্স 3 , এক্স 4 , এক্স 5 , এক্স 6 , এক্স 7 , এক্স 8 } = { ( 7 , 1 ) , ( 3 , 4 ) , ( 1C{c1}={(8,0)}X={x1,x2,x3,x4,x5,x6,x7,x8}={(7,1),(3,4),(1,5),(5,8),(1,3),(7,8),(8,2),(5,9)}

ধাপ ২:

সেট থেকে সব পয়েন্ট থেকে সব ক্ষুদ্রতম 2-আদর্শ দূরত্বের (ইউক্লিডিয় দূরত্ব) এর সমষ্টি এক্স থেকে সব পয়েন্ট সি । অন্য কথায়, এক্স এর প্রতিটি পয়েন্টের জন্য সি এর নিকটতম বিন্দুটির দূরত্বসন্ধান করুন, শেষে এই সমস্ত ন্যূনতম দূরত্বের যোগফল গণনা করুন, এক্স এর প্রতিটি পয়েন্টের জন্য একটি করে।ϕX(C)XCXCX

বোঝাতে সঙ্গে থেকে দূরত্ব হিসাবে এক্স আমি নিকটতম বিন্দু সি । আমাদের তখন ψ = n i = 1 d 2 C ( x i ) আছেdC2(xi)xiCψ=i=1ndC2(xi)

দ্বিতীয় ধাপে, একটি একক উপাদান থাকে (পদক্ষেপ 1 দেখুন) এবং এক্স সমস্ত উপাদানগুলির সেট। এই ধাপে d 2 C ( x i ) কেবল C এবং x i এর বিন্দুর মধ্যবর্তী দূরত্ব । এইভাবে ϕ = n i = 1 | | x i - c | | CXdC2(xi)Cxiϕ=i=1n||xic||2

এল জি ( ψ ) = জি ( 52.128 ) = 3.95 = 4 ( আর ইউ এন ডি ডি)ψ=i=1nd2(xi,c1)=1.41+6.4+8.6+8.54+7.61+8.06+2+9.4=52.128 log(ψ)=log(52.128)=3.95=4(rounded)

তবে খেয়াল করুন যে ৩ য় ধাপে, সাধারণ সূত্র প্রয়োগ করা হয় কারণ একাধিক পয়েন্ট থাকবে।C

ধাপ 3:

পূর্বে গণনা করা l o g ( ψ ) এর জন্য লুপটি কার্যকর করা হয়।log(ψ)

XXxipx=ld2(x,C)/ϕX(C)ld2(x,C)ϕX(C) ধাপ 2 এ ব্যাখ্যা করা হয়েছে।

অ্যালগরিদম সহজভাবে:

  • Xxi
  • xipxi
  • [0,1]pxiC
  • CC

lX

for(int i=0; i<4; i++) {

  // compute d2 for each x_i
  int[] psi = new int[X.size()];
  for(int i=0; i<X.size(); i++) {
    double min = Double.POSITIVE_INFINITY;
    for(int j=0; j<C.size(); j++) {
      if(min>d2(x[i],c[j])) min = norm2(x[i],c[j]);
    }
    psi[i]=min;
  }

  // compute psi
  double phi_c = 0;
  for(int i=0; i<X.size(); i++) phi_c += psi[i];

  // do the drawings
  for(int i=0; i<X.size(); i++) {
    double p_x = l*psi[i]/phi;
    if(p_x >= Random.nextDouble()) {
      C.add(x[i]);
      X.remove(x[i]);
    }
  }
}
// in the end we have C with all centroid candidates
return C;

পদক্ষেপ 4:

wC0XxiXjCw[j]1w

double[] w = new double[C.size()]; // by default all are zero
for(int i=0; i<X.size(); i++) {
  double min = norm2(X[i], C[0]);
  double index = 0;
  for(int j=1; j<C.size(); j++) {
    if(min>norm2(X[i],C[j])) {
      min = norm2(X[i],C[j]);
      index = j;
    }
  }
  // we found the minimum index, so we increment corresp. weight
  w[index]++;
}

পদক্ষেপ 5:

wkkp(i)=w(i)/j=1mwj

for(int k=0; k<K; k++) {
  // select one centroid from candidates, randomly, 
  // weighted by w
  // see kmeans++ and you first idea (which is wrong for step 3)
  ... 
}  

পূর্ববর্তী সমস্ত পদক্ষেপগুলি ক্লাস্টারিং অ্যালগরিদমের স্বাভাবিক প্রবাহের সাথে, কামেন ++ এর ক্ষেত্রে যেমন চলতে থাকে

আমি আশা করি এখন আরও পরিষ্কার হয়ে গেছে।

[পরে, পরে সম্পাদনা করুন]

আমি লেখকদের তৈরি একটি উপস্থাপনাও পেয়েছি, যেখানে আপনি পরিষ্কারভাবে বলতে পারবেন না যে প্রতিটি পুনরাবৃত্তিতে একাধিক পয়েন্ট নির্বাচন করা যেতে পারে। উপস্থাপনা এখানে

[পরে @ পেরার ইস্যুটি সম্পাদনা করুন]

log(ψ)

Clog(ψ)

আরেকটি বিষয় লক্ষ্যণীয় হ'ল একই পৃষ্ঠায় নিম্নলিখিত নোটটি উল্লেখ করেছে:

অনুশীলনে, বিভাগ 5 এ আমাদের পরীক্ষামূলক ফলাফলগুলি দেখায় যে ভাল সমাধানে পৌঁছানোর জন্য কেবল কয়েকটি রাউন্ডই যথেষ্ট।

log(ψ)


আপনি আমার উত্তর জন্য গণনা দিয়ে উত্তর উত্তর প্রসারিত করতে পারেন?
ব্যবহারকারী 1930254

আমি একজন প্রোগ্রামার, আমার মনে হয় আমি এখানে টাইপ করার চেয়ে দ্রুত কোডে লিখতে পারি :)। আশা করি এটি আলগো সম্পর্কে ব্যাখ্যা করবে।
রপাইও

আপনি দয়া করে ব্যাখ্যা করতে পারেন লগ (কিএসসি) এর পুনরাবৃত্তির সংখ্যাটি দিয়ে ধারণাটি কী? আমি এর নীচে ধারণাটি বুঝতে পারি না, দেখে মনে হচ্ছে যে পুনরাবৃত্তির সংখ্যাগুলি বস্তুর মানের পরিসরের উপর নির্ভর করবে, যা যুক্তিসঙ্গত বলে মনে হয় না। উদাহরণস্বরূপ, যদি বস্তুগুলির প্রায় 1000 এর বৈশিষ্ট্যযুক্ত মান থাকে, তবে উদাহরণস্বরূপ, ত্রুটিটি প্রায় 1000 এর ফলাফল হতে পারে যার অর্থ 3 টি পুনরাবৃত্তি হবে। অন্যদিকে, মানগুলি 10 এর পরিসীমাতে থাকলে ত্রুটিটি 10 ​​এর ফলাফল হতে পারে যার ফলশ্রুতি 1 টি পুনরাবৃত্তি হয়। পুনরাবৃত্তির সংখ্যা অবজেক্টের সংখ্যার উপর নির্ভর করে না?
মার্কো

@ পেরা আপনার উত্থাপিত বিষয়টি পরিষ্কার করতে উত্তর আপডেট করছি
রাপাইও

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