[英]Linear regression R-squared is 1.0
我正在對 Python 執行線性回歸,以預測分布在象牙海岸各個地點的股票。 我有 2016 年到 2019 年 9 月的數據,看起來像 . 列是 . 我在站點代碼上使用了標簽編碼。 有 156 個不同的站點,每個站點都標記為 0-155。 同樣,我使用 Get_dummies 函數為 11 個不同的產品代碼獲取 11 個不同的列。 然后我使用線性回歸來幫助預測輸出,令我驚訝的是,R 平方值為 100%。 代碼:
lm=sm.OLS(df_logistics_new_onehot_label['stock_distributed'],df_logistics_new_onehot_label[['intercept','year', 'month','site_code', 'stock_initial',
'stock_received', 'stock_adjustment', 'stock_end',
'average_monthly_consumption', 'stock_stockout_days', 'stock_ordered',
'site_latitude', 'site_longitude',
'product_code_AS21126', 'product_code_AS27000',
'product_code_AS27132', 'product_code_AS27133', 'product_code_AS27134',
'product_code_AS27137', 'product_code_AS27138', 'product_code_AS27139',
'product_code_AS42018', 'product_code_AS46000',
'site_type_Health Center',
'site_type_University Hospital/National Institute']])
results=lm.fit()
results.summary()
我進一步將數據拆分為訓練和測試
X=df_logistics_new_onehot_label[['intercept','year', 'month','site_code', 'stock_initial',
'stock_received', 'stock_adjustment', 'stock_end',
'average_monthly_consumption', 'stock_stockout_days', 'stock_ordered',
'site_latitude', 'site_longitude',
'product_code_AS21126', 'product_code_AS27000',
'product_code_AS27132', 'product_code_AS27133', 'product_code_AS27134',
'product_code_AS27137', 'product_code_AS27138', 'product_code_AS27139',
'product_code_AS42018', 'product_code_AS46000',
'site_type_Health Center',
'site_type_University Hospital/National Institute']]
y=df_logistics_new_onehot_label['stock_distributed']
X_train, X_test, y_train, y_test = train_test_split(X, y ,test_size = 0.2, shuffle=False)
clf=LinearRegression()
clf.predict(X_test)
您的目標變量與以下列完全相關:
從邏輯上講,這些是相關的也是有道理的。 嘗試先刪除這些提到的列,然后再次嘗試線性回歸。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.