আমি মনে করি M0rkHaV এর সঠিক ধারণা আছে। Scikit-শিখতে এর পাইপলাইন বর্গ এক বস্তু মধ্যে একটি মূল্নির্ধারক পাশাপাশি একাধিক বিভিন্ন ট্রান্সফরমার encapsulating জন্য একটি দরকারী টুল, আপনি শুধুমাত্র একবার (আপনার গুরুত্বপূর্ণ পদ্ধতি ফোন করতে হবে, যাতে fit()
, predict()
ইত্যাদি)। আসুন দুটি প্রধান উপাদান ভেঙে দিন:
ট্রান্সফরমারস ক্লাস বাস্তবায়ন উভয় fit()
এবং transform()
। আপনি কিছু স্কেলার্ন প্রিপ্রোসেসিং সরঞ্জামগুলির সাথে পরিচিত হতে পারেন, TfidfVectorizer
এবং এর মতো Binarizer
। আপনি যদি এই প্রাক-প্রসেসিং সরঞ্জামগুলির জন্য ডকগুলিতে সন্ধান করেন তবে আপনি দেখতে পাবেন যে তারা এই দুটি পদ্ধতি প্রয়োগ করে। যা আমি বেশ দুর্দান্ত মনে করি তা হ'ল কিছু অনুমানকারীও রূপান্তর পদক্ষেপ হিসাবে ব্যবহার করা যেতে পারে, যেমন LinearSVC
!
Estimators ক্লাস বাস্তবায়ন উভয় fit()
এবং predict()
। আপনি দেখতে পাবেন যে ক্লাসিফায়ার এবং রিগ্রেশন মডেলগুলির মধ্যে অনেকগুলি এই দুটি পদ্ধতি প্রয়োগ করে এবং এর ফলে আপনি সহজেই অনেকগুলি বিভিন্ন মডেলের পরীক্ষা করতে পারেন। চূড়ান্ত হিসাবরক্ষক হিসাবে অন্য ট্রান্সফর্মার ব্যবহার করা সম্ভব (যেমন এটি প্রয়োজনীয়ভাবে প্রয়োগ করে না predict()
, তবে অবশ্যই কার্যকর হয় fit()
)। এর সমস্ত অর্থ হ'ল আপনি কল করতে পারবেন না predict()
।
আপনার সম্পাদনা হিসাবে: আসুন একটি পাঠ্য-ভিত্তিক উদাহরণটি দেখুন। লেবেলবাইনারাইজার ব্যবহার করে, আমরা লেবেলের একটি তালিকা বাইনারি মানগুলির তালিকায় পরিণত করতে চাই।
bin = LabelBinarizer() #first we initialize
vec = ['cat', 'dog', 'dog', 'dog'] #we have our label list we want binarized
এখন, যখন বাইনারিজারটি কিছু উপাত্তে লাগানো হবে, তখন এটির একটি কাঠামো থাকবে classes_
যা ট্রান্সফর্মারটির সম্পর্কে 'জানে' এমন অনন্য ক্লাসগুলি ধারণ করে। fit()
বাইনারাইজারকে কল না করে ডেটা কেমন লাগে তার কোনও ধারণা নেই, তাই কল transform()
করার কোনও অর্থ হয় না। আপনি যদি ডেটা ফিট করার চেষ্টা করার আগে ক্লাসের তালিকাটি মুদ্রণ করেন তবে এটি সত্য।
print bin.classes_
এটি চেষ্টা করার সময় আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:
AttributeError: 'LabelBinarizer' object has no attribute 'classes_'
তবে আপনি যখন vec
তালিকার বাইনারিজারটি ফিট করবেন :
bin.fit(vec)
এবং আবার চেষ্টা করো
print bin.classes_
আমি নিম্নলিখিত পেতে:
['cat' 'dog']
print bin.transform(vec)
এবং এখন, vec
অবজেক্টে রূপান্তর কল করার পরে , আমরা নিম্নলিখিতগুলি পাই:
[[0]
[1]
[1]
[1]]
ট্রান্সফরমার হিসাবে অনুমানকারী হিসাবে ব্যবহৃত হচ্ছে, আসুন আমরা DecisionTree
একটি বৈশিষ্ট্য-এক্সট্রাক্টরের উদাহরণ হিসাবে শ্রেণিবদ্ধ ব্যবহার করি । সিদ্ধান্ত গাছগুলি অনেক কারণেই দুর্দান্ত, তবে আমাদের উদ্দেশ্যগুলির জন্য, গুরুত্বপূর্ণটি হ'ল গাছটি পূর্বাভাস দেওয়ার জন্য দরকারী যে বৈশিষ্ট্যগুলি র্যাঙ্ক করার ক্ষমতা তাদের রয়েছে । আপনি যখন transform()
কোনও সিদ্ধান্তের গাছের দিকে কল করেন তখন এটি আপনার ইনপুট ডেটা নেবে এবং এটি সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি কী বলে মনে করে তা সন্ধান করবে । সুতরাং আপনি এটিকে আপনার ডেটা ম্যাট্রিক্স (এম কলাম দ্বারা এন সারি) একটি ছোট ম্যাট্রিক্স (কে কলাম অনুসারে এন সারি) রূপান্তর করার কথা ভাবতে পারেন, যেখানে কে কলামগুলি সিদ্ধান্ত গাছের সন্ধান পাওয়া সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্য।