我不确定为什么决策树和随机森林显示 100% 的准确率?

2023-12-23

我目前正在研究一个模型,该模型可以读取结构化数据并确定某人是否患有疾病。我认为问题在于数据没有在训练数据和测试数据之间分开。我不知道我怎样才能做到这一点。

我不知道该尝试什么。

import pandas as pd
import numpy as np
import keras
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
import seaborn as sns

from sklearn.tree import DecisionTreeClassifier



heart_data = pd.read_csv('cardio_train.csv')

heart_data.head()

heart_data.shape

heart_data.describe()

heart_data.isnull().sum()

heart_data_columns = heart_data.columns

predictors = heart_data[heart_data_columns[heart_data_columns != 'target']]  # all columns except Breast Cancer
target = heart_data['target']  # Breast Cancer column


#This function returns the first n rows for the object based on position. It is useful for quickly testing if your object has the right type
predictors.head()
target.head()

#normalize the data by subtracting the mean and dividing by the standard deviation.

predictors_norm = (predictors - predictors.mean()) / predictors.std()
predictors_norm.head()



n_cols = predictors_norm.shape[1]  # number of predictors


def regression_model():
    # create model
    model = Sequential()
    #inputs
    model.add(Dense(50, activation='relu', input_shape=(n_cols,)))
    model.add(Dense(50, activation='relu')) # activation function
    model.add(Dense(1))

    # compile model
    model.compile(optimizer='adam', loss='mean_squared_error')
    #loss measures the results and figures out how bad it did. Optimizer generates next guess.
    return model


# build the model
model = regression_model()
print (model)
# fit the model
history=model.fit(predictors_norm, target, validation_split=0.3, epochs=10, verbose=2)


#Decision Tree
print ("Processing Decision Tree")
dtc = DecisionTreeClassifier()
dtc.fit(predictors_norm,target)
print("Decision Tree Test Accuracy {:.2f}%".format(dtc.score(predictors_norm, target)*100))


#Support Vector Machine
print ("Processing Support Vector Machine")
svm = SVC(random_state = 1)
svm.fit(predictors_norm, target)
print("Test Accuracy of SVM Algorithm: {:.2f}%".format(svm.score(predictors_norm,target)*100))

#Random Forest
print ("Processing Random Forest")
rf = RandomForestClassifier(n_estimators = 1000, random_state = 1)
rf.fit(predictors_norm, target)
print("Random Forest Algorithm Accuracy Score : {:.2f}%".format(rf.score(predictors_norm,target)*100))


我收到的消息是这样的 决策树测试准确率 100.00% 然而,支持向量机获得了 73.37%


您正在使用与训练模型时相同的数据来评估您的模型:您可能是过拟合。为了克服这个问题,您必须将数据分为两部分,一部分用于学习,一部分用于测试:

from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(predictors, target, test_size=0.2)

然后,使用训练数据集学习您的模型并在测试数据集上对其进行评估:

dtc = DecisionTreeClassifier()
dtc.fit(x_train, y_train)
accuracy = dtc.score(x_test, y_test) * 100
print(f"Decision Tree test accuracy : {accuracy} %.")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我不确定为什么决策树和随机森林显示 100% 的准确率? 的相关文章

  • PyList_SetItem 与 PyList_SETITEM

    据我所知 PyList SetItem 和 PyList SETITEM 之间的区别在于 PyList SetItem 会降低它覆盖的列表项的引用计数 而 PyList SETITEM 不会 我有什么理由不应该一直使用 PyList Set
  • Python Nose 导入错误

    我似乎无法理解鼻子测试框架 https nose readthedocs org en latest 识别文件结构中测试脚本下方的模块 我已经设置了演示该问题的最简单的示例 下面我会解释一下 这是包文件结构 init py foo py t
  • Spark MLlib - 训练隐式警告

    我在使用时不断看到这些警告trainImplicit WARN TaskSetManager Stage 246 contains a task of very large size 208 KB The maximum recommend
  • 编辑 scikit-learn 决策树

    我想编辑 sklearn DecisionTree 例如改变条件或切割节点 叶子等 但似乎没有功能可以做到这一点 如果我可以导出到文件 编辑它以导入 如何编辑决策树 环境 Windows 10 python3 3 sklearn 0 17
  • Python:记录垃圾收集器

    我有一个 python 应用程序 有一些性能问题 我想将垃圾收集器的事件 特别是何时调用 添加到我的日志中 是否可以 thanks http docs python org library gc html gc set debug http
  • 为什么 tkinter / window.update 在我的程序中随着时间的推移变得更慢?

    我发现当我调用 window update 时 当向窗口写入的内容较少时 它的运行速度会更快 但后来 当我向窗口写入更多元素时 window update 需要更长的时间 请参阅下面的我的代码 您可以看到它在更新窗口之前一次向屏幕 100
  • 将 API 数据存储到 DataFrame 中

    我正在运行 Python 脚本来从 Interactive Brokers API 收集金融市场数据 连接到API后 终端打印出请求的历史数据 如何将数据保存到数据帧中而不是在终端中流式传输 from ibapi wrapper impor
  • conda 无法从 yml 创建环境

    我尝试运行下面的代码来从 YAML 文件创建虚拟 Python 环境 我在 Ubuntu 服务器上的命令行中运行代码 虚拟环境名为 py36 当我运行下面的代码时 我收到下面的消息 环境也没有被创建 这个问题是因为我有几个必须使用 pip
  • 在Python中创建一个新表

    我正在尝试从数控机床中提取数据 事件每毫秒发生一次 我需要过滤掉一些用管道 分隔的变量分隔符 PuTTy exe 程序生成的日志文件 我尝试阅读熊猫 但列不在同一位置 df pd read table data log sep 日志文件的一
  • 网页抓取 - 前往第 2 页

    如何访问数据集的第二页 无论我做什么 它都只返回第 1 页 import bs4 from urllib request import urlopen as uReq from bs4 import BeautifulSoup as sou
  • str.translate 给出 TypeError - Translate 采用一个参数(给定 2 个参数),在 Python 2 中工作

    我有以下代码 import nltk os json csv string cPickle from scipy stats import scoreatpercentile lmtzr nltk stem wordnet WordNetL
  • 一起使用 Flask 和 Tornado?

    我是以下的忠实粉丝Flask 部分是因为它很简单 部分是因为它有很多扩展 http flask pocoo org extensions 然而 Flask 是为了在 WSGI 环境中使用而设计的 而 WSGI 不是非阻塞的 所以 我相信 它
  • 如何在 Python 中从 HTML 页面中提取 URL [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须用Python 编写一个网络爬
  • 为什么“return self”返回 None ? [复制]

    这个问题在这里已经有答案了 我正在尝试获取链的顶部节点getTopParent 当我打印出来时self name 它确实打印出了父实例的名称 然而 当我回来时self 它返回 None 为什么是这样 class A def init sel
  • smooth_idf 是多余的吗?

    The scikit learn 文档 http scikit learn org stable modules generated sklearn feature extraction text TfidfTransformer html
  • numpy.cov() 返回意外的输出

    我有一个 X 数据集 有 9 个特征和 683 行 683x9 我想获取这个 X 数据集和另一个与 X 具有相同形状的数据集的协方差矩阵 我使用np cov originalData generatedData rowvar False 代
  • 获取调用者文件的绝对路径

    假设我在不同的目录中有两个文件 1 py 比如说 在C FIRST FOLDER 1 py and 2 py 比如说 在C SECOND FOLDER 2 py 文件1 py进口2 py using sys path insert 0 pa
  • scipysolve_ivp() 中的访问时间步长

    我有一个常微分方程系统 正在使用 scipy 的solve ivp 函数求解 它运行良好 但我在访问每个步骤中使用的时间步时遇到问题 我知道solve ivp 将当前时间传递给用户定义的函数 但我需要使用的时间步长 而不是当前时间 为了解决
  • 在游戏中实现功能

    我在完成这部分作业时遇到了麻烦 我必须宣布游戏的获胜者 然后输入到函数中 输入所有 if 语句后 我必须创建一个函数def playGame 这必须包括 showRules user getUserChoice computer getCo
  • Python 枚举子集迭代

    我想迭代以下枚举的子集 class Items enum Enum item1 0 item2 1 item3 2 item4 3 item5 4 item6 5 item7 6 item8 7 说我想 for item in Items

随机推荐

  • C++ 中的唯一数字[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试有效地列出 1 到 100
  • 同像性,它是如何运作的?

    有人可以推荐解释同像性概念的文章 尤其是使用 Clojure 的文章 为什么 Clojure 是同音的 但在 Java 等其他语言中却很难做到这一点 在我继续讨论一些我想添加另一个答案的事情之前 这里还有一个参考 与同像性相关的部分相当短
  • TinyMCE file_picker_callback 从默认浏览器文件选择中选择图像

    我在项目中使用 TinyMCE 并希望用户使用其默认插入图像窗口选择图像并将其上传到服务器 我想点击以下按钮 打开浏览器默认文件选择窗口并将所选图像添加到编辑器中 到目前为止我的代码如下 JS tinymce init selector h
  • while(!(cin >> x)) 如何重新提示输入

    while cin gt gt ar i cin clear clears bad input while cin get n continue cout lt lt Invalid input please enter valid sco
  • byte[] 数组上的 GetHashCode()

    什么是GetHashCode 调用时计算byte 大批 具有相同内容的 2 个数据数组不提供相同的哈希值 NET 中的数组不会覆盖Equals or GetHashCode 因此您将获得的值基本上基于引用相等性 即默认实现Object 为了
  • 等待动画、渲染完成 - XAML 和 C#

    我遇到的情况是 我正在对 XAML 应用程序的一部分进行动画处理 并且我需要等待动画和渲染完成 然后才能继续编写代码 到目前为止 我的函数的尾部如下所示 ProcExpandCollapse Begin while ProcExpandCo
  • SQL-如何选择具有最大值的列的行[重复]

    这个问题在这里已经有答案了 date value 18 5 2010 1 pm 40 18 5 2010 2 pm 20 18 5 2010 3 pm 60 18 5 2010 4 pm 30 18 5 2010 5 pm 60 18 5
  • Laravel 如何检查验证唯一表两个字段

    我有 tableA 有 2 个字段 1 song id 2 playlist id 我想检查 laravel 验证独特的功能 示例 我已插入数据 id gt 1 song id gt 2 playlist id gt 34 然后我必须再次插
  • 仅删除给定字符串中的第一个单词

    我正在尝试从给定字符串中删除第一个单词 到目前为止我已经完成了 word removeMe meow whatever needle removeMe haystack To replace with word str replace ne
  • 同一域中 IE9 中的 Script5 访问被拒绝

    我正在 django 中开发一个网站 它使用 jquery 多文件上传插件 当我注册到我的网站时 一封确认电子邮件会发送到我的 Gmail 帐户 我单击激活链接 我的网站将在新选项卡中打开 我登录 然后尝试上传文件 但在 IE9 中失败 F
  • Rcpp:错误:与请求的类型不兼容

    我有这个 C 代码 include
  • 独特的词典列表

    假设我有一个字典列表 id 1 name john age 34 id 1 name john age 34 id 2 name hanna age 30 如何获取唯一词典的列表 删除重复项 id 1 name john age 34 id
  • 源更改时如何重建 Node.js 插件

    我有一个 node js 应用程序 并且创建了一个本机插件 如果您需要背景信息 可以创建 Node js 的本机插件像这样 https nodejs org api addons html 在我的开发环境中 我希望它监视源文件 在本例中是
  • 在 RelaxNG 中将元素定义为非空

    我已经开始使用 RelaxNG 来指定 XML 消息模式 并使用 PHP DOMDocument 来验证和解析传入消息 但无法弄清楚如何定义文本节点以使其不能为空 示例架构
  • Phonegap Android 文件传输错误代码 3

    我正在开发 Android 移动应用程序 它使用 Dave Johnson 的 Facebook Connect 插件 https github com davejohnson phoneg https github com davejoh
  • 如何对二维列表进行排序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有以下类型的列表 lst 1 0 23 2 0 39 4 0 31 5 0 27 我想按第二列的降序对其进行排序 我尝试过内置sorte
  • 在 Coldfusion / Apache POI 中强制完整计算整个工作簿

    给定一个工作簿 其中包含由以下方法生成的跨表公式Coldfusion 9 via Apache POI 我想以编程方式强制整个工作簿进行 通过依赖树重建进行完整计算 before将工作簿保存到磁盘 So that when my end u
  • 我无法使用模式来使用像“abc_def”这样的组名称

    我对必须编译的一系列模式有疑问 这是一个例子
  • 如何外部化 maven-checkstyle-plugin 的 checkstyle 配置

    我试图让 maven checkstyle plugin 对我们的所有项目使用相同的配置文件 我尝试了几种方法 但没有一种有效 似乎唯一有效的是当我将配置文件放在我的 maven project 的根目录中 然后在 pom xml 中使用该
  • 我不确定为什么决策树和随机森林显示 100% 的准确率?

    我目前正在研究一个模型 该模型可以读取结构化数据并确定某人是否患有疾病 我认为问题在于数据没有在训练数据和测试数据之间分开 我不知道我怎样才能做到这一点 我不知道该尝试什么 import pandas as pd import numpy