我正在尝试构建Logistic回归模型,data.Exam1是第一列
reg = linear_model.LogisticRegression()
X = list(data.Exam1.values.reshape(-1,1)).........(1)
我已执行此操作
type(X[0]) returns numpy.ndarray
reg.fit接受包含列表中所有浮动项的参数,所以我这样做是因为此例外ValueError: Unknown label type: 'continuous'
newX = []
for item in X:
type(float(item))
newX.append(float(item))
所以我试图做的时候
reg.fit(newX,newY,A)
它抛出了我的异常
Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
答案 0 :(得分:1)
从聊天中调整我们的解决方案
您正在尝试了解入学(类型:bool)作为考试成绩的函数(考试1:浮动,考试2:浮动)。您的问题的关键是sklearn.linear_model.LogisticRegression
需要两个输入:
X
:训练数据的矢量/矩阵,其形状(观察数量,预测变量数量)类型为float Y
:分类结果的向量(在本例中为二进制),其形状(观察数,1)的类型为bool或int 他们称你正在尝试将Exam2(float)作为Exam1(float)的函数。这是根本问题。更复杂的问题是你将重新塑造的numpy数组重新编排为列表的方式。假设data
是pandas.DataFrame
,您需要以下内容:
X = np.vstack((data.Exam1, data.Exam2)).T
print X.shape # should be (100, 2)
reg.fit(X, data.Admitted)
此处,data.Exam1
和data.Exam2
都是长度为100的向量。使用np.vstack
将它们组合成形状(2,100),因此我们采用转置以便我们拥有它沿着第一维度(100,2)进行适当的观察。在data.Exam1.values
期间,pd.Series
在np.array
重播为np.vstack
时,无需重新制作列表,甚至无需重复data.Admitted
。同样地,reg.fit
(形状(100,))与console.log
很好地匹配。