gpt4 book ai didi

machine-learning - Scikit_learn 的 PolynomialFeatures 与逻辑回归导致分数较低

转载 作者:行者123 更新时间:2023-11-30 09:00:10 24 4
gpt4 key购买 nike

我有一个数据集 X,其形状为 (1741, 61)。使用带有 cross_validation 的逻辑回归,每次分割得到的结果约为 62-65% (cv =5)。

我认为如果我对数据进行二次方处理,准确度应该会提高。然而,我得到了相反的效果(我得到的 cross_validation 的每个分割都在 40 的百分比范围内)所以,我假设我在尝试使数据二次化时做错了什么?

这是我正在使用的代码,

from sklearn import preprocessing
X_scaled = preprocessing.scale(X)

from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(3)
poly_x =poly.fit_transform(X_scaled)
classifier = LogisticRegression(penalty ='l2', max_iter = 200)

from sklearn.cross_validation import cross_val_score
cross_val_score(classifier, poly_x, y, cv=5)

array([ 0.46418338, 0.4269341 , 0.49425287, 0.58908046, 0.60518732])

这让我怀疑我做错了什么。

我尝试将原始数据转换为二次数据,然后使用 preprocessing.scale 来缩放数据,但导致错误。

用户警告:居中数据时遇到数值问题,并且可能无法解决。数据集可能包含太大的值。您可能需要预先调整您的功能。
warnings.warn(“遇到数字问题”

所以我没有费心走这条路。

另一件令人烦恼的事情是二次计算的速度。使用多项式特征时,cross_val_score 需要大约几个小时才能输出分数。有什么办法可以加快这个速度吗?我有一个 intel i5-6500 CPU,16 GB 内存,Windows 7 操作系统。

谢谢。

最佳答案

您是否尝试过使用 MinMaxScaler 而不是 ScalerScaler 将输出高于和低于 0 的值,因此您会遇到这样的情况:缩放值为 -0.1 的值和值为 0.1 的值将具有相同的平方值,尽管一点也不相似。直观上,这似乎会降低多项式拟合的分数。话虽这么说,我还没有测试过,这只是我的直觉。此外,要小心多项式拟合。我建议阅读this answer to "Why use regularization in polynomial regression instead of lowering the degree?" 。这是一个很好的解释,并且可能会向您介绍一些新技术。顺便说一句,@MatthewDrury 是一位出色的老师,我建议阅读他的所有答案和博客文章。

关于machine-learning - Scikit_learn 的 PolynomialFeatures 与逻辑回归导致分数较低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43457039/

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