天天看点

成功解决raise TypeError(‘Unexpected feature_names type‘)TypeError: Unexpected feature_names type

成功解决raise TypeError('Unexpected feature_names type')TypeError: Unexpected feature_names type

目录

​​解决问题​​

​​解决思路​​

​​解决方法​​

​​源代码解析​​

解决问题

raise TypeError('Unexpected feature_names type')TypeError: Unexpected feature_names type

解决思路

解决方法

feature_names : list, optional.  A list of feature names. It allows to specify feature  names when they are not provided by an estimator object.  This argument may be supported or not, depending on estimator type.      

源代码解析

def show_weights(estimator, **kwargs):
    """ Return an explanation of estimator parameters (weights)
    as an IPython.display.HTML object. Use this function
    to show classifier weights in IPython.
    
    :func:`show_weights` accepts all
    :func:`eli5.explain_weights` arguments and all
    :func:`eli5.formatters.html.format_as_html`
    keyword arguments, so it is possible to get explanation and
    customize formatting in a single call.
    
    Parameters
    ----------
    estimator : object
    Estimator instance. This argument must be positional.
    
    top : int or (int, int) tuple, optional
    Number of features to show. When ``top`` is int, ``top`` 
     features with
    a highest absolute values are shown. When it is (pos, neg) 
     tuple,
    no more than ``pos`` positive features and no more than 
     ``neg``
    negative features is shown. ``None`` value means no limit.
    
    This argument may be supported or not, depending on 
     estimator type.
    
    target_names : list[str] or {'old_name': 'new_name'} dict, 
     optional
    Names of targets or classes. This argument can be used to 
     provide
    human-readable class/target names for estimators which 
     don't expose
    clss names themselves. It can be also used to rename 
     estimator-provided
    classes before displaying them.
    
    This argument may be supported or not, depending on 
     estimator type.
    
    targets : list, optional
    Order of class/target names to show. This argument can be 
     also used
    to show information only for a subset of classes. It should 
     be a list
    of class / target names which match either names provided 
     by
    an estimator or names defined in ``target_names`` 
     parameter.
    
    This argument may be supported or not, depending on 
     estimator type.
    
    feature_names : list, optional
    A list of feature names. It allows to specify feature
    names when they are not provided by an estimator object.
    
    This argument may be supported or not, depending on 
     estimator type.
    
    feature_re : str, optional
    Only feature names which match ``feature_re`` regex are 
     shown
    (more precisely, ``re.search(feature_re, x)`` is checked).
    
    feature_filter : Callable[[str], bool], optional
    Only feature names for which ``feature_filter`` function 
     returns True
    are shown.
    
    show : List[str], optional
    List of sections to show. Allowed values:
    
    * 'targets' - per-target feature weights;
    * 'transition_features' - transition features of a CRF model;
    * 'feature_importances' - feature importances of a decision 
     tree or
    an ensemble-based estimator;
    * 'decision_tree' - decision tree in a graphical form;
    * 'method' - a string with explanation method;
    * 'description' - description of explanation method and its 
     caveats.
    
    ``eli5.formatters.fields`` provides constants that cover 
     common cases:
    ``INFO`` (method and description), ``WEIGHTS`` (all the rest),
    and ``ALL`` (all).
    
    horizontal_layout : bool
    When True, feature weight tables are printed horizontally
    (left to right); when False, feature weight tables are printed
    vertically (top to down). Default is True.
    
    highlight_spaces : bool or None, optional
    Whether to highlight spaces in feature names. This is useful 
     if
    you work with text and have ngram features which may 
     include spaces
    at left or right. Default is None, meaning that the value used
    is set automatically based on vectorizer and feature values.
    
    include_styles : bool
    Most styles are inline, but some are included separately in 
     <style> tag;
    you can omit them by passing ``include_styles=False``. 
     Default is True.
    
    **kwargs: dict
    Keyword arguments. All keyword arguments are passed to
    concrete explain_weights... implementations.
    
    Returns
    -------
    IPython.display.HTML
    The result is printed in IPython notebook as an HTML 
     widget.
    If you need to display several explanations as an output of 
     a single
    cell, or if you want to display it from a function then use
    IPython.display.display::
    
    from IPython.display import display
    display(eli5.show_weights(clf1))
    display(eli5.show_weights(clf2))
    
    """
    format_kwargs, explain_kwargs = _split_kwargs(kwargs)
    expl = explain_weights(estimator, **explain_kwargs)
    _set_html_kwargs_defaults(format_kwargs)
    html = format_as_html(expl, **format_kwargs)
    return HTML(html)