class_docstr: Non-Negative Matrix Factorization (NMF) with projected gradient solver.
  
  This class is private and for comparison purpose only.
  It may change or disappear without notice.
class_docstr_tok: ["Non-Negative","Matrix","Factorization","(","NMF",")","with","projected","gradient","solver",".","This","class","is","private","and","for","comparison","purpose","only",".","It","may","change","or","disappear","without","notice","."]
code: def __init__(
      self,
      n_components=None,
      solver="pg",
      init=None,
      tol=1e-4,
      max_iter=200,
      random_state=None,
      alpha=0.0,
      l1_ratio=0.0,
      nls_max_iter=10,
  ):
      super().__init__(
          n_components=n_components,
          init=init,
          solver=solver,
          tol=tol,
          max_iter=max_iter,
          random_state=random_state,
          alpha_W=alpha,
          alpha_H=alpha,
          l1_ratio=l1_ratio,
      )
      self.nls_max_iter = nls_max_iter
  
imports: import numbers
  import sys
  import warnings
  from time import time
  import matplotlib.pyplot
  import numpy
  import pandas
  from joblib import Memory
  from sklearn.decomposition import NMF
  from sklearn.decomposition._nmf import _beta_divergence, _check_init, _initialize_nmf
  from sklearn.exceptions import ConvergenceWarning
  from sklearn.feature_extraction.text import TfidfVectorizer
  from sklearn.utils import check_array
  from sklearn.utils._testing import ignore_warnings
  from sklearn.utils.extmath import safe_sparse_dot, squared_norm
  from sklearn.utils.validation import check_is_fitted, check_non_negative
label_desc: Use image node_id 1 to create a new _PGNMF object from inherited base classes: NMF with example: obj = _PGNMF(n_components, solver, init, tol, max_iter, random_state, alpha, l1_ratio, nls_max_iter)