我试验了不同的建模方法,包括KNN、决策树、神经网络和SVN,并试图对我的数据进行拟合,看看哪种方法最有效。令我惊讶的是,决策树的最佳工作方式是训练精度为1.0,测试精度为0.5。无论训练精度为0.92,测试精度为0.42,神经网络的性能都是最好的,比决策树分类器低8%。
请有人解释一下,与决策树这样的建模技术相比,神经网络可能具有低精度的情况/情况。我尝试过不同配置的神经网络,比如:
1 hidden layer and 1 neuron : Train Accuracy 34% Test Accuracy 42%
7 hidden layers and 5 neurons in each
因此,我一直在一组数据上使用KNN,在train_test_split阶段的random_state =4。尽管使用了随机状态,但每次输出的准确率、分类报告、预测等都是不同的。想知道为什么会这样?
这里是数据的头部:(根据all_time_runs和顺序预测位置)
order position all_time_runs
0 10 NO BAT 1304
1 2 CAN BAT 7396
2 3 NO BAT 6938
3 6 CAN BAT 4903
4
我尝试使用knn进行分类任务,我的数据集包含分类特征,这些特征是一个热门的编码、数字特征(如价格等).以及文本列的向量。
我知道knn受缩放的影响。所以我搞不懂这里用什么?
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import Normalizer
from sklearn.preprocessing import normalize
假设我们有一个二进制分类问题,我们在数据集上构建了一个决策树。
假设我们有5个特征,那么决策树将在第一步中选择最优的特征,并在这个特征上选择最佳的阈值来分割数据集,然后继续使树更深。best的定义是分类误差最小的。
我的问题是:既然决策树在每一步都会选择最佳的特征来分割,那么为什么随机森林(也就是许多决策树)是对决策树的改进?一个决策树不就足够了吗?
更新
我的意思是:如果你有一个decision tree classifier和一个参数相同的random forest classifier (max_depth,number of children等),那么decision tree cla
我在一个“葡萄酒”数据集上使用了决策树算法,这个数据集在1到10的范围内预测葡萄酒的质量,其中1是最差的,10是最好的,示例代码如下
import pandas as pd
data=pd.read_csv("wine.csv")
x=data.drop(columns="quality")# x has all the feature columns
y=data.quality# y has the label column
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,ra
我的目标是包含一个"mod_type“参数,它指示要运行的模型的类型,无论是决策树还是knn,使用kwargs让用户传入knn的可选关键字params "k”和用于决策树的"max_depth“。如果用户传递这些内容,则在初始化模型时酌情使用它们。返回模型对象。
为此,我使用以下函数:
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from