初学重塑数据集的逻辑回归



你好:我正在尝试在python中测试逻辑回归模型。我有一个特征和数据集中的因变量。当我运行一个分类器时,我得到以下消息:

ValueError: Expected 2D array, got 1D array instead:
array=[8. 4. 6. ... 5. 7. 3.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

我如何纠正这个?

Also -这是一个不平衡数据集。结果只出现在数据集中约1%的记录中。我欢迎你对解决这个问题提出任何建议,无论是过采样还是欠采样等等。

谢谢!

通过X.reshape(-1, 1),而不是X

只有一个X值和一个Y值。由于通常有许多X变量来预测一个Y变量,逻辑回归模型期望这样的输入:

[[1],[2],[3]]

这与过采样或欠采样无关,您的输入数据只是格式不正确。

你可以像这样把一个1d变成一个2d列表:

X = [1,2,3,4]
X = [[item] for item in X]

或numpy数组:

X = X.reshape(-1,1)

作为其他解的替代,numpy有一个函数np。从1D到2D的atleast_2d:

import numpy as np
X2D = np.atleast_2d(X)

之后可能需要取转置(.T)

最新更新