2017-02-20 15 views
0

我想建立Logistic迴歸模型,data.Exam1是重塑列表(-1,1),並返回持股量數據類型

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. 

,我已經做了(1),當我嘗試再次重塑其ndarray再次返回,怎麼能我已經重塑和轉換項目同時浮動?? (:布爾型)作爲考試分數的功能(Exam1:浮動,Exam2:浮動) Image

+1

你試過'.reshape(-1,1).astype(float)'嗎?參見參考[這裏](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.astype.html) – wflynny

+0

@wflynny試過這個'X = list(data.Exam1.values.reshape( -1,1).astype(float))'剛纔,仍然返回ndarray – MrRobot9

+0

@wflynny它返回(100,) – MrRobot9

回答

1

從聊天

您想了解入學適應我們的解決方案。您的問題的關鍵是,sklearn.linear_model.LogisticRegression預計兩個輸入:

  • X:的向量:矢量/訓練數據與形狀(觀測數,預測的數量)與系浮法
  • Y矩陣分類結果(在這種情況下,二進制)與形狀(觀察數,1)型布爾或INT

他們的方式,你在呼喚它試圖以適應Exam2(浮動)作爲Exam1的功能(浮動)。這是根本問題。進一步複雜的事情是你重塑你的重塑numpy陣列作爲一個列表的方式。假設datapandas.DataFrame,你想要的東西,如:

X = np.vstack((data.Exam1, data.Exam2)).T 
print X.shape # should be (100, 2) 
reg.fit(X, data.Admitted) 

在這裏,既data.Exam1data.Exam2是長度100使用np.vstack它們組合成的形狀(2,100)的載體,因此,我們採取轉置,使我們將它定位在第一維(100,2)的觀察中。無需重新列表或甚至採取data.Exam1.values,因爲在np.vstack期間pd.Series重寫爲np.array。同樣,data.Admitted(帶形狀(100,))與reg.fit搭配很好。