如何将数据集的示例加载到不同的数组中以进行决策树分类?

How to load a dataset's examples into different arrays for a decision tree classification?

我有一个包含 15 个示例的数据集。它有 3 个特征和一个目标标签。如何将对应于 3 个特征的值加载到 Python (Pandas) 中的数组中?

我想在数据集上训练决策树分类器。为此,我必须将示例加载到数组中,这样所有数据点都在数组 X 中,相应的标签在另一个数组 Y 中。我应该如何进行?

数据集如下所示:

     x1   x2   x3   z
0   5.5  0.5  4.5   2
1   7.4  1.1  3.6   0
2   5.9  0.2  3.4   2
3   9.9  0.1  0.8   0
4   6.9 -0.1  0.6   2
5   6.8 -0.3  5.1   2
6   4.1  0.3  5.1   1
7   1.3 -0.2  1.8   1
8   4.5  0.4  2.0   0
9   0.5  0.0  2.3   1
10  5.9 -0.1  4.4   0
11  9.3 -0.2  3.2   0
12  1.0  0.1  2.8   1
13  0.4  0.1  4.3   1
14  2.7 -0.5  4.2   1

我已经将数据集加载到数据框中:

import pandas as pd
df = pd.read_csv('C:\Users\Dell\Downloads\dataset.csv')

print(df.to_string())

我需要知道如何将特征 x1、x2 和 x3 对应的值加载到 X(作为训练示例)以及将标签 z 对应的值加载到 Y(作为训练示例的标签)。

谢谢。

首先将数据加载到 data.frame。

由于您的格式非常奇怪,我将其更改为普通的 .csv 以使该示例更易于理解。

x1,x2,x3,z
5.5,0.5,4.5,2
7.4,1.1,3.6,0
5.9,0.2,3.4,2
9.9,0.1,0.8,0
6.9,-0.1,0.6,2
6.8,-0.3,5.1,2
4.1,0.3,5.1,1
1.3,-0.2,1.8,1
4.5,0.4,2.0,0
0.5,0.0,2.3,1
5.9,-0.1,4.4,0
9.3,-0.2,3.2,0
1.0,0.1,2.8,1
0.4,0.1,4.3,1
2.7,-0.5,4.2,1

如果你有data.frame中的数据,就已经完成了一半的工作。我向您发布了一个使用线性回归模型的“caret”包的示例。

library("caret")
my.dataframe <- read.csv("myExample.csv", header = T, sep =",")
fit <-  train(z ~ .,  data = my.dataframe, method = "lm")
fit

基本上你只需要替换"lm"方法来训练各种其他模型。 这是一个列表,您可以从中进行选择: http://topepo.github.io/caret/available-models.html

要训练随机森林模型,您需要输入

library("caret")
my.dataframe <- read.csv("myExample.csv", header = T, sep =",")
fit <-  train(z ~ .,  data = my.dataframe, method = "rf")
fit

但也请注意,您的数据非常有限 - 并非每个模型仅对 15 个数据点都有意义。

随机森林模型会给你这样的警告:

45:在 randomForest.default(x, y, mtry = param$mtry, ...) 中: 响应具有五个或更少的唯一值。您确定要进行回归吗?