Linear Regression হল একটি সাধারাণ মেশিন লার্নিং অ্যালগরিদম যা একটি সোজা রেখা তৈরি করতে ডেটা পয়েন্টগুলির সম্পর্কের উপর ভিত্তি করে আউটপুট প্রেডিক্ট করতে ব্যবহৃত হয়। এটি মূলত Supervised Learning এর অধীনে আসে এবং ডেটার মধ্যে সঠিক সম্পর্ক খুঁজে বের করার জন্য ব্যবহৃত হয়। এই টিউটোরিয়ালে, আমরা Scikit-learn লাইব্রেরি ব্যবহার করে একটি Linear Regression মডেল তৈরি করব।
প্রক্রিয়া:
- ডেটাসেট লোড করা
- ডেটাকে Training এবং Testing অংশে ভাগ করা
- Linear Regression মডেল তৈরি এবং প্রশিক্ষণ
- মডেল পরীক্ষা এবং ফলাফল মূল্যায়ন করা
উদাহরণ: Linear Regression মডেল তৈরি করা
১. প্রয়োজনীয় লাইব্রেরি ইনস্টলেশন:
প্রথমে Scikit-learn, NumPy, এবং Matplotlib ইনস্টল করা প্রয়োজন যদি আপনি এগুলি ইনস্টল না করে থাকেন। আপনি এই কমান্ড ব্যবহার করে লাইব্রেরি ইনস্টল করতে পারেন:
pip install scikit-learn numpy matplotlib
২. কোড উদাহরণ:
# প্রয়োজনীয় লাইব্রেরি ইমপোর্ট
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# উদাহরণস্বরূপ ডেটা তৈরি করা (এখানে আমরা সরল ডেটা ব্যবহার করেছি)
# X হল ইনপুট বৈশিষ্ট্য (এখানে একমাত্র ফিচার)
# y হল টার্গেট আউটপুট (যার জন্য আমরা প্রেডিকশন করতে চাই)
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]) # ইনপুট ডেটা
y = np.array([1, 2, 1.5, 3.5, 2.5, 4.5, 5, 6, 5.5, 7]) # আউটপুট ডেটা
# ডেটাকে ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Linear Regression মডেল তৈরি করা
model = LinearRegression()
# মডেলটি ট্রেনিং ডেটা দিয়ে প্রশিক্ষিত করা
model.fit(X_train, y_train)
# মডেলটির প্রেডিকশন করা টেস্ট ডেটার উপর
y_pred = model.predict(X_test)
# ফলাফল মূল্যায়ন
print("Model Coefficients (Slope):", model.coef_)
print("Model Intercept (Intercept):", model.intercept_)
# মডেলের কর্মক্ষমতা মূল্যায়ন
print("Mean Squared Error:", mean_squared_error(y_test, y_pred))
print("R^2 Score:", r2_score(y_test, y_pred))
# গ্রাফে ফলাফল প্লট করা
plt.scatter(X_test, y_test, color='blue', label='Actual data') # প্রকৃত ডেটা
plt.plot(X_test, y_pred, color='red', label='Regression line') # রিগ্রেশন লাইন
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression')
plt.legend()
plt.show()
৩. কোড বিশ্লেষণ:
- ডেটা তৈরি করা: এখানে আমরা কৃত্রিম ডেটা তৈরি করেছি, যেখানে X হল ইনপুট ভ্যালু এবং y হল আউটপুট ভ্যালু।
- train_test_split: ডেটা দুটি ভাগে ভাগ করা হয়, একটি ট্রেনিং সেট এবং একটি টেস্ট সেট। এখানে ৮০% ডেটা ট্রেনিং সেট এবং ২০% টেস্ট সেট হিসেবে ব্যবহৃত হচ্ছে।
- Linear Regression মডেল তৈরি করা:
LinearRegression()ক্লাস ব্যবহার করে আমরা মডেল তৈরি করেছি এবং ট্রেনিং ডেটা দিয়ে মডেলটি প্রশিক্ষিত করেছি। - Model Prediction:
predict()ফাংশন ব্যবহার করে আমরা টেস্ট ডেটার ওপর মডেল প্রেডিকশন করেছি। - Model Evaluation:
mean_squared_errorএবংr2_scoreব্যবহার করে মডেলের কর্মক্ষমতা মূল্যায়ন করা হয়েছে। R² score মডেলের ভালত্ব নির্দেশ করে এবং Mean Squared Error (MSE) নির্ধারণ করে মডেলের ত্রুটি। - গ্রাফিকাল ফলাফল: Matplotlib এর মাধ্যমে আমরা মডেল এবং প্রকৃত ডেটার সাথে রিগ্রেশন লাইনের গ্রাফ প্লট করেছি।
৪. আউটপুট:
- Model Coefficients (Slope): মডেলের গ্রেডিয়েন্ট বা স্লোপ যা নির্দেশ করে ইনপুট এবং আউটপুটের মধ্যে সম্পর্ক কতটা তীক্ষ্ণ।
- Model Intercept (Intercept): মডেলের ইন্টারসেপ্ট, যা রিগ্রেশন লাইনের Y অক্ষকে কেটে যায়।
- Mean Squared Error (MSE): মডেলের ত্রুটির গড় স্কয়ার।
- R² Score: মডেলের কার্যকারিতা, যা ১ এর কাছাকাছি হলে ভালো মানে।
৫. গ্রাফ:
- এক্স-অক্ষ (X) হল ইনপুট ডেটা এবং ওয়াই-অক্ষ (Y) হল আউটপুট ডেটা।
- প্রকৃত ডেটা (blue points) এবং রিগ্রেশন লাইন (red line) পাশাপাশি প্রদর্শিত হবে।
সারাংশ:
- Linear Regression মডেল একটি সরল রেখার মাধ্যমে ইনপুট এবং আউটপুটের সম্পর্ক নির্ধারণ করে।
- Scikit-learn লাইব্রেরি ব্যবহার করে মডেল তৈরি এবং মূল্যায়ন করা সহজ।
- এই মডেলটি Train/Test Split কৌশল ব্যবহার করে প্রশিক্ষণ এবং টেস্ট ডেটা দিয়ে পরীক্ষা করা হয়।
এটি একটি মৌলিক Linear Regression মডেল, যেটি মেশিন লার্নিং এ মডেল ট্রেনিং এবং পরীক্ষণের জন্য খুবই কার্যকরী।
Read more