我有一個數據集X
其形狀是(1741,61)。使用logistic迴歸和cross_validation,每次拆分(cv = 5)的時候我都在62-65%左右。Scikit_learn的PolynomialFeatures邏輯迴歸導致分數較低
我認爲如果我把數據做成二次的,那麼準確度應該會增加。然而,我得到了相反的效果(我將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
來縮放數據,但導致錯誤。
UserWarning: Numerical issues were encountered when centering the data and might not be solved. Dataset may contain too large values. You may need to prescale your features. warnings.warn("Numerical issues were encountered "
所以我沒有理會走這條路。
另一件令人困擾的事情是二次運算的速度。使用多項式特徵時,cross_val_score需要花費幾個小時才能輸出分數。有什麼辦法可以加快速度嗎?我有一個英特爾i5-6500 CPU和16個RAM,Windows 7操作系統。
謝謝。
您提出了一個有趣的觀點。我會測試它,並閱讀你鏈接的博客。謝謝。 – Moondra
首次嘗試使用MinMaxScaler和Poly擬合似乎可以提高準確性。我會再測試幾次,但這需要一些時間。 – Moondra
看來我用MinMaxScaler獲得了更高的準確性,但我突然間以普通的縮放比例獲得了更高的準確性。 – Moondra