gpt4 book ai didi

pandas - 平均特征后学习算法的准确性下降

转载 作者:行者123 更新时间:2023-11-30 09:27:05 25 4
gpt4 key购买 nike

我有一个巨大的数据集需要清理。在这个数据集中,我有 6 列,代表 1-10 的评级系统。因此,第一列根据吸引力对一个人进行评分,第二列根据智力等对一个人进行评分。

attr1  attr2  attr3  attr4  attr5  attr6
2 5 6 8 7 2
5 9 6 9 7 3
9 8 7 5 8 6
... ...

我决定找到所有这些列的平均值并将其保存到一个新列中,然后删除这些列,所以现在我剩下的不是 (attr1 - attr6)...

avg_attr
5
6.5
7.166
...

此代码是...

data['avg_attr'] = data[['attr1', 'attr2', 'attr3', 'attr4', 'attr5', 'attr6']].mean(axis=1)

# Convert columns to 1-dimensional Series array
series = data.columns.to_series()

# Attribute data can be dropped because we already have the total mean.
data = data.drop(series["attr1":"attr6"], axis=1)

..当我这样做时,我预计算法的准确性不会受到此更改的太大影响,而且我认为它还有一个额外的好处,可以让我的数据看起来更干净。但是,应用此更改后,准确率下降了一点,为什么会这样呢?是因为我的算法现在对数据拟合不足吗?

另外,我可以利用这些属性做些什么来提高准确率吗?

最佳答案

准确率自然会下降。您正在获取平均值,但没有获取相关性。在学习算法中,一个属性值的内部依赖性正在影响另一个属性。如果您只是对所有属性进行平均,那么它如何学习一个属性对另一个属性的依赖性

删除列/属性的另一种方法是通过降维。您需要找到相关性,并且可以删除具有较高相关性的属性。

使用seaborn就可以简单看到

import seaborn as sns
sns.heatmap(test_data.corr())

您可以可视化高度相关的属性并且可以逐一删除。 降维是减少信息丢失的方法之一。我希望这个解释有帮助。

关于pandas - 平均特征后学习算法的准确性下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47442778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com