ইয়েলোব্রিক এবং স্কিকিট-লার্ন প্লেটোব্লকচেন ডেটা ইন্টেলিজেন্সের সাথে কে-মিনস এলবো মেথড এবং সিলুয়েট বিশ্লেষণ। উল্লম্ব অনুসন্ধান. আ.

কে-মানে এলবো মেথড এবং ইয়েলোব্রিক এবং স্কিট-লার্ন সহ সিলুয়েট বিশ্লেষণ

ভূমিকা

কে-মিনস হল সবচেয়ে জনপ্রিয় ক্লাস্টারিং অ্যালগরিদমগুলির মধ্যে একটি। একটি ক্লাস্টারে কেন্দ্রীয় বিন্দু থাকার দ্বারা, এটি সেই কেন্দ্রীয় বিন্দুতে তাদের দূরত্বের উপর ভিত্তি করে অন্যান্য বিন্দুকে গোষ্ঠীভুক্ত করে।

K-Means-এর একটি খারাপ দিক হল ক্লাস্টারের সংখ্যা বেছে নেওয়া, K, গ্রুপ পয়েন্ট যে অ্যালগরিদম চালানোর আগে.

আপনি যদি K-Means ক্লাস্টারিং-এর একটি গভীর নির্দেশিকা পড়তে চান, তাহলে একবার দেখুন "কে-মানে স্কিট-লার্নের সাথে ক্লাস্টারিং".

কনুই পদ্ধতি এবং সিলুয়েট বিশ্লেষণ

Ks সংখ্যা নির্বাচন করার জন্য সবচেয়ে বেশি ব্যবহৃত কৌশল হল কনুই পদ্ধতি এবং সিলুয়েট বিশ্লেষণ.

Ks পছন্দ করার সুবিধার্থে, হলুদ ব্রিক লাইব্রেরি loops এবং একটি প্লট দিয়ে কোডটি মোড়ানো হয় যা আমরা সাধারণত 4 লাইনের কোডে লিখতাম।

জুপিটার নোটবুক থেকে সরাসরি ইয়েলোব্রিক ইনস্টল করতে, চালান:

! pip install yellowbrick

আসুন দেখি এটি একটি পরিচিত ডেটাসেটের জন্য কীভাবে কাজ করে যা ইতিমধ্যেই Scikit-learn এর অংশ রামধনু ডেটাসেট

প্রথম ধাপ হল ডেটাসেট আমদানি করা, KMeans এবং yellowbrick লাইব্রেরি, এবং ডেটা লোড করুন:

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
from yellowbrick.cluster import KElbowVisualizer, SilhouetteVisualizer

iris = load_iris()

এখানে লক্ষ্য করুন, আমরা আমদানি করি KElbowVisualizer এবং SilhouetteVisualizer থেকে yellowbrick.cluster, এগুলি হল সেই মডিউলগুলি যা আমরা কনুই এবং সিলুয়েটের ফলাফলগুলি কল্পনা করতে ব্যবহার করব!

ডেটাসেট লোড করার পরে, তে data গুচ্ছের কী (একটি ডেটা টাইপ যা একটি অভিধানের একটি এক্সটেনশন) হল সেই পয়েন্টগুলির মান যা আমরা ক্লাস্টার করতে চাই। যদি আপনি জানতে চান যে সংখ্যাগুলি কী প্রতিনিধিত্ব করে, তা একবার দেখুন iris['feature_names'].

এটি জানা যায় যে আইরিস ডেটাসেটে তিন ধরনের আইরিজ রয়েছে: 'ভার্সিকলার', 'ভার্জিনিকা' এবং 'সেটোসা'। এছাড়াও আপনি ক্লাস পরিদর্শন করতে পারেন iris['target_names'] যাচাই করার জন্য.

সুতরাং, আমাদের কাছে ক্লাস্টার করার জন্য 4টি বৈশিষ্ট্য রয়েছে এবং আমরা ইতিমধ্যে যা জানি সে অনুযায়ী সেগুলিকে 3টি আলাদা ক্লাস্টারে আলাদা করা উচিত। কনুই পদ্ধতি এবং সিলুয়েট বিশ্লেষণের সাথে আমাদের ফলাফলগুলি এটিকে সমর্থন করবে কিনা তা দেখা যাক৷

প্রথমত, আমরা বৈশিষ্ট্য মান নির্বাচন করব:

print(iris['feature_names']) 
print(iris['target_names']) 

X = iris['data']

তারপর, আমরা একটি তৈরি করতে পারি KMeans মডেল, ক KElbowVisualizer() উদাহরণ যা সেই মডেলটি পাবে এবং ks সংখ্যা সহ যার জন্য একটি মেট্রিক গণনা করা হবে, এই ক্ষেত্রে থেকে 2 11 থেকে Ks.

এর পরে, আমরা ডেটা ব্যবহার করে ভিজ্যুয়ালাইজারকে ফিট করি fit() এবং এর সাথে প্লটটি প্রদর্শন করুন show(). একটি মেট্রিক নির্দিষ্ট না হলে, ভিজ্যুয়ালাইজার ব্যবহার করে নড়ন মেট্রিক, যা প্রতিটি বিন্দু থেকে তার নির্ধারিত কেন্দ্রে বর্গ দূরত্বের যোগফল গণনা করে:

model = KMeans(random_state=42)

elb_visualizer = KElbowVisualizer(model, k=(2,11))
elb_visualizer.fit(X)    
elb_visualizer.show()  

এখন, আমরা ইতিমধ্যে একটি আছে KMeans ক্লাস্টারিংয়ের জন্য বিকৃতি স্কোর এলবো একটি উল্লম্ব রেখা চিহ্নিত করে প্লট যা ks এর সেরা সংখ্যা হবে, এই ক্ষেত্রে, 4.

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

model_4clust = KMeans(n_clusters = 4, random_state=42)

sil_visualizer = SilhouetteVisualizer(model_4clust)
sil_visualizer.fit(X)    
sil_visualizer.show()

k এর জন্য সিলুয়েট স্কোর মানে কনুই পদ্ধতি ব্যবহার করে ক্লাস্টার

কোড প্রদর্শন করে a 150টি কেন্দ্রে 4টি নমুনার জন্য KMeans ক্লাস্টারিংয়ের সিলুয়েট প্লট. এই ক্লাস্টারগুলি বিশ্লেষণ করার জন্য, আমাদের সিলুয়েট সহগ (বা স্কোর) এর মান দেখতে হবে, এর সর্বোত্তম মান 1 এর কাছাকাছি। আমাদের গড় মান হল 0.5, উল্লম্ব লাইন দ্বারা চিহ্নিত, এবং তাই ভাল না.

আমাদের ক্লাস্টারগুলির মধ্যে বিতরণের দিকেও নজর দিতে হবে - একটি ভাল প্লটে একই আকারের ক্লাস্টার এলাকা বা ভালভাবে বিতরণ করা পয়েন্ট থাকে। এই গ্রাফে, 3টি ছোট ক্লাস্টার (সংখ্যা 3, 2, 1) এবং একটি বড় ক্লাস্টার (সংখ্যা 0), যা আমরা আশা করছিলাম এমন ফলাফল নয়৷

সেরা-অভ্যাস, শিল্প-স্বীকৃত মান এবং অন্তর্ভুক্ত চিট শীট সহ গিট শেখার জন্য আমাদের হ্যান্ডস-অন, ব্যবহারিক গাইড দেখুন। গুগলিং গিট কমান্ড এবং আসলে বন্ধ করুন শেখা এটা!

কি হয় তা দেখতে 3 টি ক্লাস্টারের জন্য একই প্লট পুনরাবৃত্তি করা যাক:

model_3clust = KMeans(n_clusters = 3, random_state=42)

sil_visualizer = SilhouetteVisualizer(model_3clust)
sil_visualizer.fit(X)    
sil_visualizer.show()

kmeans ক্লাস্টারের জন্য সিলুয়েট

ক্লাস্টার সংখ্যা পরিবর্তন করে, সিলুয়েট স্কোর পেয়েছে 0.05 উচ্চতর এবং ক্লাস্টারগুলি আরও সুষম। যদি আমরা ক্লাস্টারের প্রকৃত সংখ্যা না জানতাম, পরীক্ষা করে এবং উভয় কৌশল একত্রিত করে, আমরা বেছে নিতাম 3 পরিবর্তে 2 Ks সংখ্যা হিসাবে

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

সময় স্ট্যাম্প:

থেকে আরো Stackabuse