分类算法——决策树

     2023-03-13     7

关键词:

【中文标题】分类算法——决策树【英文标题】:Classification algorithm - decision tree 【发布时间】:2018-12-12 17:22:15 【问题描述】:

我有从感应电机收集的 MPU6050 加速度计数据。我想训练一种算法并使用新数据集进行预测。

我已经使用决策树分类器训练了算法并获得了 100% 的分数并进行了测试

当我尝试给这个模型提供新的数据集时,分类没有正确完成。我在代码末尾给出了一个例子。

请在下面找到代码:

import pandas as pd
import numpy
import pickle
from pandas.tools.plotting import scatter_matrix
from matplotlib import cm

filename=pd.read_csv("C:/Users/Meena/Desktop/Datawithlabel.txt", sep=',')
filename.columns = ["x", "y", "z","Label"]

feature_names=['x']
X=filename[feature_names]
y=filename['Label']


from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=7)

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()

X_train = scaler.fit_transform(X_train)


from sklearn.tree import DecisionTreeClassifier

clf = DecisionTreeClassifier().fit(X_train, y_train)


print('Accuracy of Decision Tree classifier on training set: :.2f'
     .format(clf.score(X_train, y_train)))

决策树分类器在训练集上的准确度:1.00

Filename='final_model.sav'
pickle.dump(clf,open(Filename,'wb'))
load_model=pickle.load(open(Filename,'rb'))
result=load_model.score(X_test,y_test)
print(result)

0.9393939393939394

load_model=pickle.load(open(Filename,'rb'))

filename1=pd.read_csv("C:/Users/Meena/Desktop/Motor2withloadsafter5min.txt", sep=',')
filename1.columns = ["x", "y", "z"]
Datatopredict=filename1[['x']]

prediction = load_model.predict(Datatopredict)

print(prediction)

即使对于这些值,它在训练集中作为非工作类给出,但在预测中仍然作为工作类产生。不知道哪里出错了……

在下面的数据中,第一列是索引,第二列是加速度计的 X 轴数据

590  0.03
591  0.03
592  0.02
593  0.02
594  0.01
595  0.04
596  0.12
597  0.12
598  0.11
599  0.14

['工作''工作''工作''工作''工作''工作''工作' '工作' '工作' '工作']

This is the screenshot of the training data

【问题讨论】:

请更详细地解释你在说什么。 "Even though for these values its given as non working class in training set, it still yields as working class in prediction" 是什么意思?相同的值是否被不同地预测。可以分享一下训练数据吗? 训练数据集太大,我无法分享。但是请检查我附加的新屏幕截图,其中值 [596 - 599] 的类被分类为不工作,但预测的结果将它们分类为工作 【参考方案1】:

除了我上面的评论之外,我注意到的一件事是您没有缩放测试值。

您还需要在 X_test 上使用相同的缩放器,例如:X_test = scaler.transform(X_test),然后再进行预测。所以还要腌制scaler 并在测试期间加载它。 训练期间:

Filename = 'final_model.sav'
pickle.dump(clf, open(Filename, 'wb'))

scaler_Filename = 'final_scalar.sav'
pickle.dump(scaler, open(scaler_Filename, 'wb'))

测试期间:

load_scaler = pickle.load(open(scaler_Filename,'rb'))
X_test = load_scaler.transform(X_test)

load_model = pickle.load(open(Filename,'rb'))
result = load_model.score(X_test,y_test)

print(result)

关于新数据:

Datatopredict = load_scaler.transform(Datatopredict)
prediction = load_model.predict(Datatopredict)

【讨论】:

当我尝试按照您所说的进行缩放时,出现以下错误: -------------- ------------------------------------------------- 属性错误Traceback(最近一次调用最后一次) in () 3 4 load_model = pickle.load(open(Filename,'rb')) ----> 5 result = load_model.score (X_test,y_test) 6 7 print(result) AttributeError: 'MinMaxScaler' 对象没有属性 'score' 还是一样 [ -------------------------------------------------- ------------------------- AttributeError Traceback(最近一次调用最后) in () 3 4 load_model = pickle.load(open(Filename,'rb')) ----> 5 result = load_model.score(X_test,y_test) 6 7 print(result) AttributeError : 'MinMaxScaler' 对象没有属性 'score' ] @MeenakshiChowdhary 请立即尝试。 有没有一种方法可以打印新输入及其各自的预测类?

分类算法——决策树

】分类算法——决策树【英文标题】:Classificationalgorithm-decisiontree【发布时间】:2018-12-1217:22:15【问题描述】:我有从感应电机收集的MPU6050加速度计数据。我想训练一种算法并使用新数据集进行预测。我已经使用决策树分类器... 查看详情

ml:决策树算法

     在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(DecisionTreeModel)和朴素贝叶斯模型(NaiveBayesianModel,NBC)。决策树模型通过构造树来解决分类问题。首先利用训练数据集来构造一棵决策树... 查看详情

sparkmllib分类算法之决策树学习

SparkMLlib分类算法之决策树学习(一)决策树的基本概念    决策树(DecisionTree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法... 查看详情

分类算法之决策树

分类问题,主要介绍决策树算法、朴素贝叶斯、支持向量机、BP神经网络、懒惰学习算法、随机森林与自适应增强算法、分类模型选择和结果评价。一、分类基本介绍  物以类聚,人以群分,分类问题只古以来就出现我们的生... 查看详情

机器学习算法学习02:决策树的学习以及应用决策树解决cora数据集论文分类问题(代码片段)

...02:决策树的学习以及应用决策树解决Cora数据集论文分类问题文章目录机器学习算法学习02:决策树的学习以及应用决策树解决Cora数据集论文分类问题1.前言2.算法分析2.1算法概述2.2算法优化3.算法代码3.1决策属性优先级... 查看详情

机器学习决策树

...策树简介1.1决策树概述决策树算法是一种基于树形结构的分类算法,它能从给定的无序的训练样本中,提炼出树型的分类模型,树形中包含判断模块和终止模块。它是一种典型的分类算法,首先对数据进行处理,利用归纳算法生... 查看详情

机器学习算法决策树-6prism

目录PRISM决策规则算法如何使用分类树来进行分类预测:分类树与分类规则间的关系PRISM决策规则的产生方式我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主目前进度:第四部分【机器学习算法】PRISM决策规则... 查看详情

提升算法

提升树:提升树是以分类树或回归树为基本分类器的提升方法。提升方法实际采用加法模型(即基函数的线性组合)与前向分布算法,以决策树为基函数的提升方法称为提升树,对分类问题决策树是二叉分类树,对回归问题决策树... 查看详情

matlab基于决策树算法实现多分类预测(源码可直接替换数据)

【Matlab】基于决策树算法实现多分类预测(源码可直接替换数据))1.算法简介1.1算法原理1.2算法优点1.3算法缺点1.4算法步骤2.测试数据集3.替换数据4.函数说明4.1文件结构4.2文件函数5.混淆矩阵6.对比结果7.代码及注释1.算法简介1.... 查看详情

matlab基于决策树算法实现多分类预测(源码可直接替换数据)

【Matlab】基于决策树算法实现多分类预测(源码可直接替换数据))1.算法简介1.1算法原理1.2算法优点1.3算法缺点1.4算法步骤2.测试数据集3.替换数据4.函数说明4.1文件结构4.2文件函数5.混淆矩阵6.对比结果7.代码及注释1.算法简介1.... 查看详情

ml之监督学习算法之分类算法一————决策树算法

一、概述  决策树的一个重要任务是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,在这些机器根据数据创建规则时,就是机器学习的过程。二、决策树的构造  决策树:... 查看详情

决策树分类算法(id3)

...或类分布。树的最顶层是根结点。 2. 机器学习中分类方法中的一个重要算法 3. 构造决策树的基本算法  查看详情

spark机器学习:决策树算法

1.决策树基本知识决策树就是通过一系列规则对数据进行分类的一种算法,可以分为分类树和回归树两类,分类树处理离散变量的,回归树是处理连续变量。样本一般都有很多个特征,有的特征对分类起很大的作用,有的特征对... 查看详情

统计学习方法五决策树分类

决策树分类1,概念        2,决策树算法2.1,特征选择:  熵:值越大,不确定性因素越大;条件熵:条件对结果的影响不确定性;信息增益;信息增益比                        2.2... 查看详情

ai机器学习-决策树算法-概念和学习过程

1.概念决策树是通过一系列规则对数据进行分类的过程,它提供一种在什么条件下会得到什么值的类似规则的方法。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。分类决策树模型是... 查看详情

决策树算法

...杂的熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归等。对于这些问题,CART算法大部分做了改进。CART算法也就是我们下面的重点了。由于CART算法可以做回归,也可以做分类,我们分别加以介绍,先从CART... 查看详情

机器学习算法:决策树算法简介以及分类原理(代码片段)

...构,最早的决策树就是利用这类结构分割数据的一种分类学习方法决策树:是一种树形结构,其中每个内部节点表示一个属性 查看详情

算法决策树

...只需要您注意力集中25分钟。1.明白概念:a)决策树是一种分类算法,通过训练数据集构建决策树,可以高效的对未知的数据进行分类,主要是用来做预测b)决策树是一种树状结构,它的每个叶节点对应着一个分类,非叶节点对应... 查看详情