【发布时间】:2018-05-26 15:25:19
【问题描述】:
阅读https://blog.slavv.com/37-reasons-why-your-neural-network-is-not-working-4020854bd607
调试神经网络检查的状态如下:
- 输入输出的关系是不是太随意了?也许输入和输出之间关系的非随机部分是 与随机部分相比太小(有人可能会争辩说库存 价格是这样的)。 IE。输入与 输出。没有一种通用的方法可以检测到这一点,因为这取决于 数据的性质。
为了检查这一点,我写了下面的代码:
我的数据框:
columns = ['A','B']
data = np.array([[1,2] , [1,5], [2,3], [2,3]])
df = pd.DataFrame(data,columns=columns)
df
A B
0 1 2
1 1 5
2 2 3
3 2 3
其中 A 是输入变量,B 是目标变量。
测量标签 1 的预测能力的代码:
df_sub1 = df[df['A'] == 1]
len(df_sub1['A'].unique()) / len(df_sub1['B'].unique())
返回值为 0.5,因为标签 1 有两个不同的目标值..
衡量标签 2 预测能力的代码:
df_sub1 = df[df['A'] == 2]
len(df_sub1['A'].unique()) / len(df_sub1['B'].unique())
返回值为 1,对于标签 2,两个目标值相同。
由此可以推断出属性 1 是比属性 2 更好的预测器?我通过阅读上面的“Is the relationship ....”创建了这个。这个计算有一个标题,它是衡量可预测性的好方法吗?
为了通过数据预处理提高神经网络的准确性,可以尝试从训练集中删除预测能力低于预定义阈值的值,其中值是上述计算的结果?
【问题讨论】:
标签: python pandas machine-learning neural-network