পাইথনে আপনার প্রথম মেশিন লার্নিং ক্লাসিফায়ার তৈরি করা



এই নিবন্ধটি আপনাকে স্ক্র্যাচ থেকে পাইথনে একটি মেশিন লার্নিং ক্লাসিফায়ার তৈরি করতে সহায়তা করবে। এটি আপনাকে শ্রেণিবদ্ধকরণের বিস্তারিত জ্ঞান সরবরাহ করবে provide

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

মেশিন লার্নিং এর ওভারভিউ

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





মেশিন লার্নিং ক্লাসিফায়ার

মেশিন লার্নিংয়ে সিদ্ধান্ত নেওয়া, তাদের ক্রিয়াগুলির ফলাফলগুলি মূল্যায়ন করা এবং ধারাবাহিকভাবে আরও ভাল ফলাফল পাওয়ার জন্য তাদের আচরণের উন্নতি করার মেশিনগুলির দক্ষতা জড়িত।



শেখার প্রক্রিয়াটি তিনটি প্রধান উপায়ে সঞ্চালিত হয়

  • তত্ত্বাবধানে পড়াশোনা
  • নিরীক্ষণশিক্ষা
  • শক্তিবৃদ্ধি শেখা

মেশিন লার্নিং ক্লাসিফায়ারগুলির জন্য একটি টেম্পলেট

পাইথন লাইব্রেরিতে সাইকিট-লার্নিং নামে মেশিন লার্নিংয়ের সরঞ্জামগুলি খুব সহজেই সরবরাহ করা হয় যা অ্যাক্সেস এবং প্রয়োগের জন্য খুব সহজ।



কমান্ড প্রম্পটের মাধ্যমে সাইকিট-লার্ন ইনস্টল করুন:

পাইপ ইনস্টল করুন - বিজ্ঞান-শিখুন

আপনি যদি অ্যানাকোন্ডা ব্যবহারকারী হন তবে অ্যানাকোন্ডা প্রম্পটে আপনি এটি ব্যবহার করতে পারেন:

কনডা ইনস্টল করুন সাইকিট-শিখুন

ইনস্টলেশনটি আপনার সিস্টেমে NumPy এবং SciPy প্যাকেজগুলির পূর্বে ইনস্টলেশন প্রয়োজন।

প্রাক প্রসেসিং: যেকোন মেশিন লার্নিং-ভিত্তিক ডেটা বিশ্লেষণের প্রথম এবং সর্বাধিক প্রয়োজনীয় পদক্ষেপটি হ'ল প্রিপ্রোসেসিং অংশ। এমএল মডেলটির ভাল প্রশিক্ষণের জন্য এবং এর সম্ভাব্যতার সাথে সম্পাদন করার জন্য ডেটার সঠিক প্রতিনিধিত্ব এবং পরিষ্কার করা একেবারে প্রয়োজনীয়।

ধাপ 1 - প্রয়োজনীয় গ্রন্থাগার আমদানি করুন

plt হিসাবে np আমদানি পান্ডা হিসাবে পিডি আমদানি matplotlib.pyplot হিসাবে নম্পতি আমদানি করুন

ধাপ ২ - ডেটাসেট আমদানি করুন

ডেটাসেট = পিডি.ড্রেড_সিএসভি ()

তারপরে আমরা ডেটাসেটকে স্বতন্ত্র এবং নির্ভরশীল ভেরিয়েবলগুলিতে বিভক্ত করি। স্বাধীন ভেরিয়েবলগুলি ইনপুট ডেটা হবে এবং নির্ভরশীল ভেরিয়েবল হ'ল আউটপুট ডেটা।

এক্স = ডাটাসেট.ইলোক []। মানগুলি y = ডেটাসেট.ইলোক []। মানগুলি

ধাপ 3 - অনুপস্থিত ডেটা পরিচালনা করুন

ডেটাসেটে ফাঁকা বা নাল মান থাকতে পারে, যা আমাদের ফলাফলগুলিতে ত্রুটি সৃষ্টি করতে পারে। অতএব আমাদের এ জাতীয় এন্ট্রিগুলি মোকাবেলা করতে হবে। একটি সাধারণ অনুশীলন হল নাল মানগুলিকে একটি সাধারণ মান হিসাবে প্রতিস্থাপন করা, যেমনটি কলামের গড় বা সর্বাধিক ঘন মান like

sklearn.preprocessing আমদানি থেকে ইম্পিউটার ইম্পিউটার = ইম্পিউটার (নিখোঁজ_মূল্য = 'নাএন', কৌশল = 'গড়', অক্ষ = 0) ইমপুটার = ইম্পিউটার.ফিট (এক্স []) এক্স [] = ইম্পিউটার.টান্সফর্ম (এক্স [])

পদক্ষেপ 4 - শ্রেণিবদ্ধ ভেরিয়েবলগুলিকে সংখ্যাগত ভেরিয়েবলে রূপান্তর করুন

sklearn.pre প্রসেসিং আমদানি থেকে LabelEncoder লে_এক্স = লেবেল এনকোডার () এক্স [] = লে_এক্স.ফিট_ট্রান্সফর্ম (এক্স []) লেবেলেনকোডার_ই = লেবেল এনকোডার () y = লেবেলিংকোডার_ই.ফিট_ট্রান্সফর্ম (y)

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

sklearn.pre প্রসেসিং আমদানি থেকে OneHotEncoder oneHE = OneHotEncoder (শ্রেণিবদ্ধ_প্রেমী = []) এক্স = ওয়ানএইচইফিট_ট্রান্সফর্ম (এক্স)। টোয়ারে ()

পদক্ষেপ 5 - স্কেলিং করা

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

sklearn.pre প্রসেসিং আমদানি থেকে স্ট্যান্ডার্ডস্কেলার sc_X = স্ট্যান্ডার্ডস্কেলার () এক্স = sc_X.fit_transfor (এক্স)

পদক্ষেপ 6 - ডেটাসেটকে প্রশিক্ষণ এবং পরীক্ষার ডেটাতে ভাগ করুন

প্রিপ্রোসেসিংয়ের শেষ ধাপ হিসাবে, ডেটাসেটকে একটি প্রশিক্ষণ সেট এবং পরীক্ষার সেটে বিভক্ত করা দরকার। ট্রেন-পরীক্ষার বিভাজনের মান অনুপাত 75% -25%। আমরা প্রয়োজন অনুযায়ী সংশোধন করতে পারেন। ট্রেন_স্টেস্ট_স্প্লিট () ফাংশনটি আমাদের জন্য এটি করতে পারে।

sklearn.model_selection আমদানি ট্রেন_েস্ট_স্প্লিট এক্স_ট্রেইন, এক্স_স্টেট, y_train, y_test = ট্রেন_টেষ্ট_স্প্লিট (এক্স, ওয়াই, টেস্ট_সাইজ = 0.25)

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

sklearn থেকে। ক্লাসিফায়ার = () শ্রেণিবদ্ধকারী.ফিট (এক্স_ট্রেইন, y_train) আমদানি করুন

মডেলটি এখন প্রশিক্ষিত এবং প্রস্তুত। আমরা এখন পরীক্ষার সেটে আমাদের মডেলটি প্রয়োগ করতে পারি, এবং পূর্বাভাস পাওয়া আউটপুট পাই।

y_pred = classifier.predict (এক্স_স্টেস্ট)

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

জাভাস্ক্রিপ্ট ওভার jquery এর সুবিধা
sklearn.metrics থেকে আমদানি বিভ্রান্তি_ম্যাট্রিক্স সেমি = বিভ্রান্তি_ম্যাট্রিক্স (y_test, y_pred) মুদ্রণ (সেমি) থেকে sklearn.metics আমদানি শ্রেণিবদ্ধকরণ_পরিবর্তন টার্গেট_নাম = [] মুদ্রণ (শ্রেণিবদ্ধি_বন্দর (y_ সর্বশেষ, y_pred, লক্ষ্য_নাম = লক্ষ্য_নাম))

মেশিন লার্নিং ক্লাসিফায়ার সমস্যা

আইরিস-সেটোসা, আইরিস-ভার্সিকোলার এবং আইরিস-ভার্জিনিকা - 3 টি বিভাগে ফুলের মাত্রা সমেত আমরা খুব জনপ্রিয় এবং সাধারণ আইরিস ডেটাসেট ব্যবহার করব। ডেটাসেটে 150 টি প্রবেশ রয়েছে।

# লাইব্রেরিগুলি আমদানি np হিসাবে এনপি আমদানি matplotlib.pyplot পিডি হিসাবে আমদানি প্যান্ডাস হিসাবে # ডেটাসেটটি আমদানি করে = পিডি.ড্রেড_সিএসভি ('iris.csv')

আসুন এখনই ডেটাসেটটি দেখতে দিন।

ডেটাসেট.হেড ()

আমাদের 4 টি স্বতন্ত্র ভেরিয়েবল রয়েছে (আইডি বাদে), কলাম নম্বরগুলি 1-4, এবং 5 কলাম নির্ভরশীল ভেরিয়েবল। সুতরাং আমরা তাদের আলাদা করতে পারি।

এক্স = ডেটাসেট.ইলোক [:, 1: 5]। মানগুলি y = ডেটাসেট.ইলোক [:, 5]। মান

এখন আমরা ডেটাসেটকে প্রশিক্ষণ এবং পরীক্ষায় বিভক্ত করতে পারি।

# স্ক্যাসার্ন.মডেল_স্লেকশন আমদানি ট্রেন_স্টেস্ট_স্প্লিট এক্স_ট্রেইন, এক্স_স্টেট, ওয়াই ট্রেন, y_test = ট্রেন_স্টেস্ট_স্প্লিট (এক্স, ওয়াই, টেস্ট_সাইজ = 0.25) থেকে ডেটাसेटকে ট্রেনিং সেট এবং টেস্ট সেটে বিভক্ত করা হচ্ছে

এখন আমরা ডেটাসেটে একটি লজিস্টিক রিগ্রেশন শ্রেণিবদ্ধকারী প্রয়োগ করব।

# Sklearn.linear_model আমদানি থেকে লজিস্টিক রিগ্রেশন ক্লাসিফায়ার = লজিস্টিক রিগ্রেশন () শ্রেণিবদ্ধ.ফিট (এক্স_ট্রেইন, y_train) থেকে মডেলটি তৈরি এবং প্রশিক্ষণ # টেস্ট সেট ফলাফলের পূর্বাভাস y_pred = শ্রেণিবদ্ধকরণকারী (এক্স_েস্ট)

শেষ পদক্ষেপটি প্রশিক্ষিত মডেলটির কার্যকারিতা বিশ্লেষণ করা হবে।

# স্ক্লেয়ার্ন থেকে বিভ্রান্তি ম্যাট্রিক্স তৈরি করা হচ্ছে confusion

এটি আমাদের দেখায় যে প্রথম বিভাগের 13 টি, দ্বিতীয়টির 11 টি এবং তৃতীয় বিভাগের 9 টি সঠিকভাবে মডেল দ্বারা ভবিষ্যদ্বাণী করা হয়েছে।

# দক্ষতা, নির্ভুলতা, পুনর্নির্মাণ এবং এফ 1-স্কোর থেকে স্কেলরন.মেট্রিক্স আমদানি শ্রেণীবদ্ধকরণ_বন্দর লক্ষ্য_নাম = ['আইরিস-সেটোসা', 'আইরিস-ভার্সিকোলার', 'আইরিস-ভার্জিনিকা'] মুদ্রণ (শ্রেণীবদ্ধকরণ_বন্দর) (y_test, y_pred, টার্গেট_নাম = লক্ষ্য_নাম) )

প্রতিবেদনে আমাদের পরীক্ষার সেটটিতে মডেলটির যথার্থতা, প্রত্যাহার, এফ 1-স্কোর এবং যথার্থ মানগুলি দেখানো হয়েছে, যা 38 টি প্রবেশিকা (25% ডেটাসেট) নিয়ে গঠিত।

অভিনন্দন, আপনি পাইথনে আপনার প্রথম মেশিন লার্নিং ক্লাসিফায়ার সফলভাবে তৈরি এবং প্রয়োগ করেছেন! গভীরতর জ্ঞান অর্জন করতে এর বিভিন্ন অ্যাপ্লিকেশন সহ, আপনি 24/7 সমর্থন এবং আজীবন অ্যাক্সেস সহ লাইভ পাইথন অনলাইন প্রশিক্ষণের জন্য তালিকাভুক্ত করতে পারেন।