Fastai表格数据-简单数据集上的错误结果

时间:2019-09-27 23:05:36

标签: fast-ai

我正在测试fastai表格模型,并得到了意外的结果。 基本上,我试图使用建立在随机x上的输入数据帧来预测y = x * x

from fastai.tabular import *

# Build input dataframe
SIZE = 10000
df = pd.DataFrame({'x': np.random.randn(SIZE)})
df['y'] = df['x'] ** 2

# Create data object
dep_var = 'y'
cont_names = ['x']
data = (TabularList.from_df(df, cont_names=cont_names)
                           .split_by_rand_pct(valid_pct=0.1)
                           .label_from_df(cols=dep_var, label_cls=FloatList)
                           .databunch())

# Create model and learn
learn = tabular_learner(data, layers=[200,100], metrics=rmse)
learn.fit_one_cycle(5)

#epoch  train_loss  valid_loss  root_mean_squared_error time
#0  0.706821    0.472120    0.467643    00:01
#1  0.275269    0.077311    0.271610    00:01
#2  0.194118    0.133515    0.325397    00:01
#3  0.176048    0.076927    0.187314    00:01
#4  0.163826    0.078179    0.207878    00:01


# Display result
row = df.sample(1).iloc[0]
print(row)
learn.predict(row)  

# Typically:
# x = -1.582047 / y = 2.502874 / predicted_y = 2.324813

我希望深度学习能有更好的表现,所以我可能在这里做错了。

有人可以解释为什么我得到这么差的结果吗?

1 个答案:

答案 0 :(得分:0)

当您对这样的随机数分布求平方时,您必然会得到一些小的y值,这可能会导致一些浮点算术问题,从而影响您的结果。