【问题标题】:Why am I getting perfect on my decision tree ML algorithm training?为什么我的决策树 ML 算法训练越来越完美?
【发布时间】:2021-05-31 13:57:14
【问题描述】:

我是第一次测试决策树,我的算法性能获得了满分。这没有任何意义,因为我使用的数据集是 AAPL 股票价格的一堆不同变量,显然算法无法完美检测到这些变量。

CSV:

Date,Open,High,Low,Close,Adj Close,Volume
2010-01-04,10430.6904296875,10604.9697265625,10430.6904296875,10583.9599609375,10583.9599609375,179780000
2010-01-05,10584.5595703125,10584.5595703125,10522.51953125,10572.01953125,10572.01953125,188540000

我认为它可能不起作用的原因是因为我在训练模型时基本上只是在输入答案,而在我尝试对模型进行评分时它只是在反刍那些答案。

代码:

# Data Sorting
df = pd.read_csv('AAPL_test.csv')
df = df.drop('Date', axis=1)
df = df.dropna(axis='rows')
inputs = df.drop('Close', axis='columns')
target = df['Close']

print(inputs.dtypes)
print(target.dtypes)

# Changing dtypes
lab_enc = preprocessing.LabelEncoder()
target_encoded = lab_enc.fit_transform(target)

# Model
model = tree.DecisionTreeClassifier()
model.fit(inputs, target_encoded)

print(f'SCORE = {model.score(inputs, target_encoded)}')

我还考虑过随机化 CSV 文件的顺序,这可能会有所帮助,但我不确定该怎么做。我可以随机化代码顶部的df,但我很确定,这会同样扭曲两个数据帧的结果,因此我现在所做的不会有什么不同。否则,我可以单独随机化数据集,但我认为这会扰乱模型训练或评分,因为测试数据不会与正确的数据相关联?我不太确定。

【问题讨论】:

    标签: python scikit-learn decision-tree


    【解决方案1】:

    很可能您的模型过度拟合。我认为您没有将数据集分成两部分:一部分用于训练,另一部分用于测试。测试数据将帮助您了解您的模型是过拟合还是欠拟合。

    更多信息:

    Overfitting

    How to Prevent Overfitting

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多