docs: def explain_linear_classifier_weights(clf,
                                        vec=None,
                                        top=_TOP,
                                        target_names=None,
                                        targets=None,
                                        feature_names=None,
                                        coef_scale=None,
                                        feature_re=None,
                                        feature_filter=None,
                                        ):
      """
      Return an explanation of a linear classifier weights.
  
      See :func:`eli5.explain_weights` for description of
      ``top``, ``target_names``, ``targets``, ``feature_names``,
      ``feature_re`` and ``feature_filter`` parameters.
  
      ``vec`` is a vectorizer instance used to transform
      raw features to the input of the classifier ``clf``
      (e.g. a fitted CountVectorizer instance); you can pass it
      instead of ``feature_names``.
  
      ``coef_scale`` is a 1D np.ndarray with a scaling coefficient
      for each feature; coef[i] = coef[i] * coef_scale[i] if
      coef_scale[i] is not nan. Use it if you want to scale coefficients
      before displaying them, to take input feature sign or scale in account.
      """
      feature_names, coef_scale = handle_hashing_vec(vec, feature_names,
                                                     coef_scale)
      feature_names, flt_indices = get_feature_names_filtered(
          clf, vec,
          feature_names=feature_names,
          feature_filter=feature_filter,
          feature_re=feature_re,
      )
  
      _extra_caveats = "\n" + HASHING_CAVEATS if is_invhashing(vec) else ''
  
      def _features(label_id):
          coef = get_coef(clf, label_id, scale=coef_scale)
          if flt_indices is not None:
              coef = coef[flt_indices]
          return get_top_features(feature_names, coef, top)
  
      classes = getattr(clf, "classes_", ["-1", "1"])  # OneClassSVM support
      display_names = get_target_display_names(classes, target_names, targets)
      if is_multiclass_classifier(clf):
          return Explanation(
              targets=[
                  TargetExplanation(
                      target=label,
                      feature_weights=_features(label_id)
                  )
                  for label_id, label in display_names
                  ],
              description=DESCRIPTION_CLF_MULTICLASS + _extra_caveats,
              estimator=repr(clf),
              method='linear model',
          )
      else:
          # for binary classifiers scikit-learn stores a single coefficient
          # vector, which corresponds to clf.classes_[1].
          return Explanation(
              targets=[
                  TargetExplanation(
                      target=display_names[1][1],
                      feature_weights=_features(0),
                  )
              ],
              description=DESCRIPTION_CLF_BINARY + _extra_caveats,
              estimator=repr(clf),
              method='linear model',
          )