7টি মেশিন লার্নিং অ্যালগরিদম যা এখনও গুরুত্বপূর্ণ – KDnuggets

7টি মেশিন লার্নিং অ্যালগরিদম যা এখনও গুরুত্বপূর্ণ – KDnuggets

নেপাল বনাম নামিবিয়া


7টি মেশিন লার্নিং অ্যালগরিদম যা এখনও গুরুত্বপূর্ণ – KDnuggets

# ভূমিকা

সবচেয়ে সহজ সমাধান প্রায়শই সর্বোত্তম হয়, বিশেষ করে যখন একটি নির্দিষ্ট মেশিন লার্নিং সমস্যা সমাধান করা হয়।

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

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

# 1. লিনিয়ার রিগ্রেশন

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

মডেলটি ইনপুট বৈশিষ্ট্য এবং লক্ষ্য মানের মধ্যে সম্পর্ক শেখার মাধ্যমে কাজ করে। এটি একটি সরল রেখার সম্পর্ক খুঁজে বের করার চেষ্টা করে যা প্রশিক্ষণ ডেটাতে প্রকৃত মানগুলির যতটা সম্ভব কাছাকাছি ভবিষ্যদ্বাণী তৈরি করে।

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

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

এখানে, fit() প্রশিক্ষণ ডেটা ব্যবহার করে লিনিয়ার রিগ্রেশন মডেলকে প্রশিক্ষণ দেয়। দ predict() পদ্ধতিটি তারপর পরীক্ষার ডেটার জন্য পূর্বাভাস তৈরি করতে শেখা সম্পর্কগুলি ব্যবহার করে।

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

# 2. লজিস্টিক রিগ্রেশন

লজিস্টিক রিগ্রেশন হল সবচেয়ে সাধারণ শ্রেণিবিন্যাস অ্যালগরিদমগুলির মধ্যে একটি। এটি সাধারণত দুটি সম্ভাব্য ফলাফলের সমস্যাগুলির জন্য ব্যবহৃত হয়, যেমন স্প্যাম বা না স্প্যাম, গ্রাহক মন্থন বা ধরে রাখা, এবং জালিয়াতি বা বৈধ লেনদেন।

মডেলটি সম্ভাব্যতা অনুমান করে কাজ করে যে একটি পর্যবেক্ষণ একটি নির্দিষ্ট শ্রেণীর অন্তর্গত। এটি শেখে কিভাবে প্রতিটি ইনপুট বৈশিষ্ট্য এই সম্ভাবনাকে প্রভাবিত করে এবং একটি ক্লাস বরাদ্দ করতে ফলাফল ব্যবহার করে।

এর নাম সত্ত্বেও, লজিস্টিক রিগ্রেশন একটি শ্রেণীবিভাগ অ্যালগরিদম। এটি দ্রুত, ব্যাখ্যা করা তুলনামূলকভাবে সহজ এবং অনেক শ্রেণীবিভাগ সমস্যার জন্য একটি শক্তিশালী ভিত্তিরেখা।

from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

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

# 3. লাইটজিবিএম

লাইটজিবিএম ট্রি-ভিত্তিক মেশিন লার্নিংয়ের জন্য ডিজাইন করা একটি গ্রেডিয়েন্ট বুস্টিং অ্যালগরিদম। এটি স্ট্রাকচার্ড বা ট্যাবুলার ডেটাসেটের জন্য বিশেষভাবে কার্যকর।

মডেল একে একে সিদ্ধান্ত গাছ তৈরি করে। প্রতিটি নতুন গাছ বিদ্যমান গাছগুলির দ্বারা করা ত্রুটিগুলিকে উন্নত করার উপর দৃষ্টি নিবদ্ধ করে এবং তাদের ভবিষ্যদ্বাণীগুলি চূড়ান্ত ফলাফল তৈরি করতে একত্রিত হয়।

LightGBM হিস্টোগ্রাম-ভিত্তিক শিক্ষা ব্যবহার করে, যা অবিচ্ছিন্ন বৈশিষ্ট্যের মানগুলিকে বিনে গোষ্ঠীভুক্ত করে। এটি মেমরির ব্যবহার কমাতে পারে এবং প্রশিক্ষণকে আরও দক্ষ করে তুলতে পারে, বিশেষ করে বড় ডেটাসেটে।

from lightgbm import LGBMClassifier

model = LGBMClassifier()
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

এই উদাহরণ ব্যবহার করে LGBMClassifier শ্রেণীবিভাগের জন্য। LightGBM এছাড়াও বিতরণ LGBMRegressor রিগ্রেশন কাজের জন্য।

এটি সমান্তরাল, বিতরণ করা এবং GPU প্রশিক্ষণকেও সমর্থন করে, এটিকে বড় আকারের, টেবুলার মেশিন লার্নিংয়ের জন্য একটি জনপ্রিয় পছন্দ করে তোলে।

# 4. হিস্টোগ্রাম গাছ সহ XGBoost

XGBoost স্ট্রাকচার্ড ডেটার জন্য আরেকটি জনপ্রিয় গ্রেডিয়েন্ট এনহান্সমেন্ট অ্যালগরিদম। এটি শ্রেণীবিভাগ, রিগ্রেশন এবং র‌্যাঙ্কিং সমস্যার জন্য ব্যাপকভাবে ব্যবহৃত হয়।

LightGBM-এর মতো, XGBoost ক্রমানুসারে সিদ্ধান্ত গাছ তৈরি করে। প্রতিটি নতুন গাছ বর্তমান ভবিষ্যদ্বাণীতে ত্রুটি সংশোধন করার চেষ্টা করে, ধীরে ধীরে মডেলটিকে উন্নত করে।

একটি বড় সিদ্ধান্ত গাছের উপর নির্ভর করার পরিবর্তে, XGBoost একটি শক্তিশালী চূড়ান্ত ভবিষ্যদ্বাণী তৈরি করতে অনেকগুলি ছোট গাছকে একত্রিত করে।

from xgboost import XGBClassifier

model = XGBClassifier(tree_method="hist")
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

tree_method="hist" সংজ্ঞা একটি হিস্টোগ্রাম-ভিত্তিক গাছ নির্মাণ ব্যবহার করে। XGBoost দরকারী স্প্লিটগুলি সন্ধান করার আগে বৈশিষ্ট্যের মানগুলিকে বিনে গোষ্ঠীভুক্ত করা হয়, গাছ নির্মাণকে আরও দক্ষ করে তোলে।

XGBoost নমনীয়, নির্ভরযোগ্য এবং অনেক ট্যাবুলার মেশিন লার্নিং সমস্যার জন্য সবচেয়ে শক্তিশালী অ্যালগরিদমগুলির মধ্যে একটি।

# 5. এলোমেলো বন

এলোমেলো বন হল একটি এনসেম্বল মেশিন লার্নিং অ্যালগরিদম যা একাধিক সিদ্ধান্ত গাছকে একত্রিত করে।

একটি একক গাছের উপর নির্ভর করার পরিবর্তে, এটি প্রশিক্ষণ ডেটার বিভিন্ন নমুনা এবং উপলব্ধ বৈশিষ্ট্যগুলির উপসেটগুলি ব্যবহার করে অনেকগুলি গাছকে প্রশিক্ষণ দেয়। তাদের ভবিষ্যদ্বাণীগুলি তখন একত্রিত হয়।

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

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(
    n_estimators=100,
    random_state=42
)

model.fit(X_train, y_train)

y_pred = model.predict(X_test)

n_estimators=100 সংজ্ঞাটি র্যান্ডম ফরেস্টকে 100টি সিদ্ধান্ত গাছ তৈরি করতে বলে।

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

# 6. দীর্ঘ স্বল্পমেয়াদী মেমরি নেটওয়ার্ক

স্বল্প-মেয়াদী মেমরি নেটওয়ার্ক, বা LSTM, ক্রমিক ডেটার জন্য ডিজাইন করা এক ধরনের পুনরাবৃত্ত নিউরাল নেটওয়ার্ক।

LSTM পূর্ববর্তী ধাপ থেকে তথ্য ধরে রাখার সময় ধাপে ধাপে একটি ক্রম প্রক্রিয়া করে। এটি অভ্যন্তরীণ মেমরি এবং গেট ব্যবহার করে সিদ্ধান্ত নেয় কোন তথ্য রাখা, আপডেট বা উপেক্ষা করা।

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

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    keras.Input(shape=(X_train.shape[1], X_train.shape[2])),
    layers.LSTM(64),
    layers.Dense(1)
])

model.compile(
    optimizer="adam",
    loss="mean_squared_error"
)

model.fit(X_train, y_train, epochs=20)

y_pred = model.predict(X_test)

LSTM(64) একটি স্তরে 64টি LSTM ইউনিট থাকে যা ক্রম প্রক্রিয়া করে। দ Dense(1) একটি স্তর একটি একক সংখ্যাসূচক ভবিষ্যদ্বাণী তৈরি করে।

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

# 7. K- মানে ক্লাস্টারিং

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

অ্যালগরিদমটি সেন্ট্রোয়েড নামক একটি নির্বাচিত সংখ্যক ক্লাস্টার কেন্দ্র দিয়ে শুরু হয়। প্রতিটি পর্যবেক্ষণ তার নিকটতম কেন্দ্রে বরাদ্দ করা হয়, এবং কেন্দ্রগুলি প্রতিটি গ্রুপের পর্যবেক্ষণের উপর ভিত্তি করে পুনঃগণনা করা হয়।

ক্লাস্টারগুলি উল্লেখযোগ্যভাবে পরিবর্তন করা বন্ধ না হওয়া পর্যন্ত এই প্রক্রিয়াটি পুনরাবৃত্তি করা হয়।

from sklearn.cluster import KMeans

model = KMeans(
    n_clusters=3,
    n_init=10,
    random_state=42
)

clusters = model.fit_predict(X)

n_clusters=3 সংজ্ঞাটি k- মানে তিনটি গ্রুপ তৈরি করতে বলে। দ n_init=10 সেটিংটি একাধিক কেন্দ্র প্রারম্ভিকতার সাথে অ্যালগরিদম চালায় এবং সেরা ফলাফল রাখে।

K- মানে লেবেলবিহীন ডেটাতে প্যাটার্ন আবিষ্কার করার জন্য উপযোগী, যেমন গ্রাহক সেগমেন্ট বা অনুরূপ আচরণ সহ গোষ্ঠী। এর প্রধান সীমাবদ্ধতা হল অ্যালগরিদম চালানোর আগে ক্লাস্টারের সংখ্যা নির্বাচন করতে হবে।

# চূড়ান্ত চিন্তা

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

এই মডেলগুলি দ্রুততর, কার্যকর করা সহজ এবং সাধারণত অনেক কম CPU, RAM এবং পরিকাঠামোর প্রয়োজন হয়। কোথাও কোথাও, আমরা প্রায় ভুলে গেছি যে সরলতা প্রায়শই সর্বোত্তম সমাধান।

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

গুরুত্বপূর্ণ দক্ষতা সবসময় নতুন মডেল নির্বাচন করা হয় না. এটি সমস্যার জন্য সঠিক মডেল নির্বাচন করছে।

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



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *