1.异常信息:

C:\Python36\python36.exe "E:/python_project/ImoocDataAnalysisMiningModeling/第6章 挖掘建模/6-4~6-5 分类-朴素贝叶斯~分类-决策树.py"
C:\Python36\lib\site-packages\sklearn\utils\validation.py:: DataConversionWarning: Data with input dtype int64 was converted to float64 by MinMaxScaler.
warnings.warn(msg, DataConversionWarning)
C:\Python36\lib\site-packages\sklearn\utils\validation.py:: DataConversionWarning: Data with input dtype int64 was converted to float64 by MinMaxScaler.
warnings.warn(msg, DataConversionWarning)
C:\Python36\lib\site-packages\sklearn\utils\validation.py:: DataConversionWarning: Data with input dtype int64 was converted to float64 by MinMaxScaler.
warnings.warn(msg, DataConversionWarning)
C:\Python36\lib\site-packages\sklearn\utils\validation.py:: DataConversionWarning: Data with input dtype int64 was converted to float64 by MinMaxScaler.
warnings.warn(msg, DataConversionWarning) Traceback (most recent call last):
KNN ACC: 0.9337704189354372
KNN REC: 0.8670795616960457
File "E:/python_project/ImoocDataAnalysisMiningModeling/第6章 挖掘建模/6-4~6-5 分类-朴素贝叶斯~分类-决策树.py", line , in <module>
KNN F1 0.8593012275731823
main()
File "E:/python_project/ImoocDataAnalysisMiningModeling/第6章 挖掘建模/6-4~6-5 分类-朴素贝叶斯~分类-决策树.py", line , in main
hr_modeling(features, labels)
File "E:/python_project/ImoocDataAnalysisMiningModeling/第6章 挖掘建模/6-4~6-5 分类-朴素贝叶斯~分类-决策树.py", line , in hr_modeling
filled=True, rounded=True, special_characters=True)
File "C:\Python36\lib\site-packages\sklearn\tree\export.py", line , in export_graphviz
check_is_fitted(decision_tree, 'tree_')
File "C:\Python36\lib\site-packages\sklearn\utils\validation.py", line , in check_is_fitted
raise NotFittedError(msg % {'name': type(estimator).__name__})
sklearn.exceptions.NotFittedError: This KNeighborsClassifier instance is not fitted yet. Call 'fit' with appropriate arguments before using this method. Process finished with exit code

2.错误成因:

2.1 表象原因

Exception class to raise if estimator is used before fitting.

This class inherits from both ValueError and AttributeError to help with exception handling and backward compatibility.

大意是在fitting之前使用了estimator

>>> from sklearn.svm import LinearSVC
>>> from sklearn.exceptions import NotFittedError
>>> try:
... LinearSVC().predict([[, ], [, ], [, ]])
... except NotFittedError as e:
... print(repr(e))
...
NotFittedError('This LinearSVC instance is not fitted yet'...)

2.2 解决方案:

先调用fit方法再进行预测

clf = clf.fit(X_train, Y_train)
Y_pred = clf.predict(DecisionTreeClassifier())

2.3 根本原因

我在决策树碰到NotFittedError,是因为用到了list,存在多个数学模型,我的代码如下

models = []
models.append(("KNN", KNeighborsClassifier(n_neighbors=)))
models.append(("GaussianNB", GaussianNB()))
models.append(("BernoulliNB", BernoulliNB()))
# 使用决策树要注释掉前者,否则报NotFittedError
models.append(("DecisionTree", DecisionTreeClassifier()))
models.append(("DecisionTreeEntropy", DecisionTreeClassifier(criterion="entropy")))

为什么会报NotFittedError?点击打开"C:\Python36\lib\site-packages\sklearn\tree\export.py"这个文件,会看到

check_is_fitted(decision_tree, 'tree_')

我们可以知道,不是决策树模型就会返回False,因为第一个模型是KNN(K最近邻分类),不是决策树,所以返回False,返回True需要DecisionTreeClassifier()

这里可以看到,和NotFittedError并无太大关系

2.4 解决方案:

把models前面的模型注释掉,或者重新写一个models将其他数学模型和决策树模型分开以规避这种错误

决策树遇到sklearn.exceptions.NotFittedError: XXX instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.的解决方案的更多相关文章

  1. 决策树在sklearn中的实现

    1 概述 1.1 决策树是如何工作的 1.2 构建决策树 1.2.1 ID3算法构建决策树 1.2.2 简单实例 1.2.3 ID3的局限性 1.3 C4.5算法 & CART算法 1.3.1 ...

  2. CountVectorizer()类解析

      主要可以参考下面几个链接: 1.sklearn文本特征提取 2.使用scikit-learn tfidf计算词语权重 3.sklearn官方中文文档 4.sklearn.feature_extra ...

  3. Python sklearn拆分训练集、测试集及预测导出评分 决策树

    机器学习入门 (注:无基础可快速入门,想提高准确率还得多下功夫,文中各名词不做过多解释) Python语言.pandas包.sklearn包   建议在Jupyter环境操作 操作步骤 1.panda ...

  4. Sklearn库例子——决策树分类

    Sklearn上关于决策树算法使用的介绍:http://scikit-learn.org/stable/modules/tree.html 1.关于决策树:决策树是一个非参数的监督式学习方法,主要用于 ...

  5. 机器学习实战 | SKLearn最全应用指南

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/41 本文地址:http://www.showmeai.tech/article-det ...

  6. SK-Learn 全家福

    SK-Learn API 全家福 最近SK-Learn用的比较多, 以后也会经常用,将Sk-Learn 所有内容整理了一下,整理思路,并可以备查. (高清图片可以用鼠标右键在单独窗口打开,或者保存到本 ...

  7. 决策树 Decision Tree

    决策树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布.树的最顶层是根结点.  决策树的构建 想要构建一个决策树,那么咱们 ...

  8. Python简单实现决策树

    __author__ = '糖衣豆豆' #决策树 import pandas as pda fname="~/coding/python/data/lesson.csv" data ...

  9. Checked Exceptions

    记得当年在程序员杂志上看出这次访谈,10多年过去了, 这件事儿最近被重提了, 原因是 Kotlin. 1.对Checked Exceptions特性持保留态度 (译者注:在写一段程序时,如果没有用tr ...

随机推荐

  1. Linux下.Net Core+Nginx环境搭建小白教程

    前言 对于接触.Net Core的我们来说之前从未接触过Linux,出于资源和性能及成本的考虑我们可能要将我们的环境搬到Linux下,这对于我们从未接触过Linux的童鞋们来说很棘手,那么我今天将带你 ...

  2. Python----一些面试题

    1.写出以下结果 print(1<2 and 2==2) print(1<2 and 2==1) print(1>2 and 2==2) 结果: True False False 解 ...

  3. python中的列表和元组

    1. 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求,列表存在索引和切片. 和字符串是一样的. 2.相关的增删改查操作 切片 列表和 ...

  4. web负载均衡【总结归纳所有看过的资料的理论】

    web负载均衡 在有些时候进行扩展是显而易见的,比如下载服务由于带宽不足而必须进行的扩展,但是,另一些时候,很多人一看到站点性能不尽如人意,就马上实施负载均衡等扩展手段,真的需要这样做吗?当然这个问题 ...

  5. NTP服务器配置

    #/etc/ntp.conf# driftfile /var/lib/ntp/ntp.drift logfile /var/log/ntpd.log statistics loopstats peer ...

  6. Learning Rich Features from RGB-D Images for Object Detection and Segmentation论文笔记

    相关工作: 将R-CNN推广到RGB-D图像,引入一种新的编码方式来捕获图像中像素的地心姿态,并且这种新的编码方式比单纯使用深度通道有了明显的改进. 我们建议在每个像素上用三个通道编码深度图像:水平视 ...

  7. JAVA基本数据类型所占字节数是多少?

    byte     1字节                short    2字节                int      4字节                long     8字节     ...

  8. C语言中宏定义与C++中的内联函数

    一,宏定义:在预处理的时候把宏定义的内容替换到代码中,正常编译. 1,无参数宏定义和有参数宏定义 (1)宏定义不能加分号,比如:#define  PI 3.24;错的,#define  PI 3.24 ...

  9. Requests Header | Http Header

    Requests Header | Http Header Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accep ...

  10. (二)SSO之CAS框架单点退出,自定义退出界面.

    用CAS的退出,只能使用它自己的那个退出界面,如果有这样的要求, 要求退出后自动跳转到登录界面, 该如何做呢?下面这篇文章实现了退出后可以自定义跳转界面.  用了CAS,发现退出真是个麻烦事,退出后跳 ...