কম্পিউটার টিউটোরিয়াল

Matplotlib-এ MLPClassifier-এর loss_curve_ থেকে লস ভ্যালু উপযুক্তভাবে প্লট করার পদ্ধতি


MLPClassifier-এর loss_curve_ থেকে অর্জিত লস ভ্যালু উপযুক্তভাবে প্লট করতে নিচের ধাপগুলো ফলো করতে পারেন:

  • ফিগার সাইজ সেট করুন এবং সাবপ্লটের মধ্যে ও চারপাশে প্যাডিং অ্যাডজাস্ট করুন।
  • একটি params লিস্ট তৈরি করুন, ডিকশনারি হিসেবে।
  • লেবেল এবং প্লট আর্গুমেন্টের একটি লিস্ট তৈরি করুন।
  • nrows=2 এবং ncols=2 সহ একটি ফিগার এবং সাবপ্লটের সেট তৈরি করুন।
  • আইরিস ডেটাসেট (ক্লাসিফিকেশন) লোড এবং রিটার্ন করুন।
  • ডেটাসেট থেকে x_digits এবং y_digits পান।
  • কাস্টোমাইজড data_set, টাপলের লিস্ট পান।
  • জিপ করা axes, data_sets এবং টাইটেলের লিস্টের নাম ইটারেট করুন।
  • plot_on_dataset() মেথডে; কারেন্ট অ্যাক্সিসের টাইটেল সেট করুন।
  • মাল্টি-লেয়ার পারসেপট্রন ক্লাসিফায়ার ইনস্ট্যান্স পান।
  • mlps পান, অর্থাৎ mlpc ইনস্ট্যান্সের লিস্ট।
  • mlps ইটারেট করুন এবং plot() মেথড ব্যবহার করে mlp.loss_curve_ প্লট করুন।
  • ফিগার প্রদর্শন করতে show() মেথড ব্যবহার করুন।

উদাহরণ

import warnings
import matplotlib.pyplot as plt
from sklearn.neural_network import MLPClassifier
from sklearn.preprocessing import MinMaxScaler
from sklearn import datasets
from sklearn.exceptions import ConvergenceWarning

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

params = [{'solver': 'sgd', 'learning_rate': 'constant', 'momentum': 0, 'learning_rate_init': 0.2},
          {'solver': 'sgd', 'learning_rate': 'constant', 'momentum': .9, 'nesterovs_momentum': False, 'learning_rate_init': 0.2},
          {'solver': 'sgd', 'learning_rate': 'constant', 'momentum': .9, 'nesterovs_momentum': True, 'learning_rate_init': 0.2},
          {'solver': 'sgd', 'learning_rate': 'invscaling', 'momentum': 0, 'learning_rate_init': 0.2},
          {'solver': 'sgd', 'learning_rate': 'invscaling', 'momentum': .9, 'nesterovs_momentum': True, 'learning_rate_init': 0.2},
          {'solver': 'sgd', 'learning_rate': 'invscaling', 'momentum': .9, 'nesterovs_momentum': False, 'learning_rate_init': 0.2},
          {'solver': 'adam', 'learning_rate_init': 0.01}]

labels = ["constant learning-rate", "constant with momentum", "constant with Nesterov's momentum",
          "inv-scaling learning-rate", "inv-scaling with momentum", "inv-scaling with Nesterov's momentum", "adam"]

plot_args = [{'c': 'red', 'linestyle': '-'},
             {'c': 'green', 'linestyle': '-'},
             {'c': 'blue', 'linestyle': '-'},
             {'c': 'red', 'linestyle': '--'},
             {'c': 'green', 'linestyle': '--'},
             {'c': 'blue', 'linestyle': '--'},
             {'c': 'black', 'linestyle': '-'}]

def plot_on_dataset(X, y, ax, name):
    ax.set_title(name)
    X = MinMaxScaler().fit_transform(X)
    mlps = []
    if name == "digits":
        max_iter = 15
    else:
        max_iter = 400
    for label, param in zip(labels, params):
        mlp = MLPClassifier(random_state=0, max_iter=max_iter, **param)
        with warnings.catch_warnings():
            warnings.filterwarnings("ignore", category=ConvergenceWarning, module="sklearn")
            mlp.fit(X, y)
        mlps.append(mlp)
    for mlp, label, args in zip(mlps, labels, plot_args):
        ax.plot(mlp.loss_curve_, label=label, **args)

fig, axes = plt.subplots(2, 2)
iris = datasets.load_iris()
X_digits, y_digits = datasets.load_digits(return_X_y=True)

data_sets = [(iris.data, iris.target), (X_digits, y_digits),
             datasets.make_circles(noise=0.2, factor=0.5, random_state=1),
             datasets.make_moons(noise=0.3, random_state=0)]

for ax, data, name in zip(axes.ravel(), data_sets, ['iris', 'digits', 'circles', 'moons']):
    plot_on_dataset(*data, ax=ax, name=name)

fig.legend(ax.get_lines(), labels, ncol=3, loc="upper center")

plt.show()

আউটপুট

Matplotlib-এ MLPClassifier-এর loss_curve_ থেকে লস ভ্যালু উপযুক্তভাবে প্লট করার পদ্ধতি

Matplotlib-এ MLPClassifier-এর loss_curve_ থেকে লস ভ্যালু উপযুক্তভাবে প্লট করার পদ্ধতি


  1. Matplotlib-এ লগ-লগ প্লট থেকে সায়েন্টিফিক নোটেশন মুছে ফেলার পদ্ধতি

  2. Matplotlib ফিগারের মার্জিন সেট করার পদ্ধতি

  3. Matplotlib প্লট থেকে ডেটা এক্সট্রাক্ট করার পদ্ধতি

  4. Matplotlib-এ NaN মান দিয়ে প্লট এবং কাজ করার পদ্ধতি