Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

MLPClassifier से (loss_curve_) द्वारा प्राप्त हानि मूल्यों को उचित रूप से कैसे प्लॉट करें? (मैटप्लोटलिब)

MLPCIassifier से (loss_curve_) द्वारा प्राप्त हानि मूल्यों को उचित रूप से प्लॉट करने के लिए, हम निम्नलिखित कदम उठा सकते हैं -

  • आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें।
  • परम बनाएं, शब्दकोशों की सूची बनाएं।
  • लेबल और प्लॉट तर्कों की एक सूची बनाएं।
  • nrows=2 और ncols=
  • के साथ एक आकृति और सबप्लॉट का एक सेट बनाएं
  • आइरिस डेटासेट (वर्गीकरण) लोड करें और वापस करें।
  • डेटासेट से x_digits और y_digits प्राप्त करें।
  • अनुकूलित data_set, टुपल्स की सूची प्राप्त करें।
  • ज़िप्ड, कुल्हाड़ियों, data_sets और शीर्षकों के नाम की सूची को पुनरावृत्त करें।
  • plot_on_dataset() . में तरीका; वर्तमान अक्ष का शीर्षक सेट करें।
  • मल्टी-लेयर परसेप्ट्रॉन क्लासिफायर इंस्टेंस प्राप्त करें।
  • एमएलपीएस प्राप्त करें , यानी एमएलपीसी उदाहरणों की एक सूची।
  • पुनरावृत्ति एमएलपीएस और प्लॉट करें mlp.loss_curve_ प्लॉट () . का उपयोग करके विधि।
  • आंकड़ा प्रदर्शित करने के लिए, दिखाएं () . का उपयोग करें विधि।

उदाहरण

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()

आउटपुट

MLPClassifier से (loss_curve_) द्वारा प्राप्त हानि मूल्यों को उचित रूप से कैसे प्लॉट करें? (मैटप्लोटलिब)

MLPClassifier से (loss_curve_) द्वारा प्राप्त हानि मूल्यों को उचित रूप से कैसे प्लॉट करें? (मैटप्लोटलिब)


  1. Matplotlib आकृति के मार्जिन को कैसे सेट करें?

    matplotlib आकृति के मार्जिन को सेट करने के लिए, हम margins() . का उपयोग कर सकते हैं विधि। कदम आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। बनाएं टी और y डेटा अंक numpy का उपयोग कर रहे हैं। इंडेक्स 1 पर मौजूदा आंकड़े में एक सबप्लॉट जोड़ें। प्लॉट टी और वाई डेटा पॉइंट प्लॉट

  1. Matplotlib प्लॉट से डेटा कैसे निकालें?

    Matplotlib में एक प्लॉट से डेटा निकालने के लिए, हम get_xdata() . का उपयोग कर सकते हैं और get_ydata() तरीके। कदम आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। numpy का उपयोग करके y डेटा पॉइंट बनाएं। प्लॉट y डेटा पॉइंट color=red . के साथ और लाइनविड्थ=5 । डेटा निकालने के लिए

  1. Matplotlib में NaN मानों के साथ प्लॉट और कार्य कैसे करें?

    Matplotlib में NaN मानों के साथ प्लॉट और काम करने के लिए, हम निम्नलिखित कदम उठा सकते हैं - कुछ NaN मानों के साथ numpy का उपयोग करके डेटा बनाएं। उपयोग करें imshow() डेटा को एक छवि के रूप में प्रदर्शित करने की विधि, यानी, एक 2D नियमित रेखापुंज पर, एक कॉलोरमैप और डेटा के साथ (चरण 1 से)। आकृति