2017-10-11 10 views
0

graphlab을 사용하여 선형 회귀 모델을 만들려고합니다. 나는 200 개의 샘플과 1 개의 예측자를 가지고있다. 단 1 개 기능이 더 INF가 없기 때문에 내 경우에는 적용되지 않습니다graphlab linear regression이 숫자 오버플로 오류로 종료되었습니다.

model_all = graphlab.linear_regression.create(data2.tail(200), target='output', features=['input'],validation_set=None,l2_penalty=0.0002,solver = 'auto') 
Linear regression: 
-------------------------------------------------------- 
Number of examples   : 200 
Number of features   : 1 
Number of unpacked features : 1 
Number of coefficients : 2 
Starting Newton Method 
-------------------------------------------------------- 
+-----------+----------+--------------+--------------------+---------------+ 
| Iteration | Passes | Elapsed Time | Training-max_error | Training-rmse | 
+-----------+----------+--------------+--------------------+---------------+ 
+-----------+----------+--------------+--------------------+---------------+ 
TERMINATED: Terminated due to numerical overflow error. 
This model may not be ideal. To improve it, consider doing one of the following: 
(a) Increasing the regularization. 
(b) Standardizing the input data. 
(c) Removing highly correlated features. 
(d) Removing `inf` and `NaN` values in the training data 

힌트 (b), (c) 및 (D) :하지만 "숫자 오버플로 오류"가 발생, 여기에 출력 또는 NaN 값. 나는 다양한 l2_penalty를 시도했지만 모두 사용하지는 않습니다. 내가 샘플 수를 180과 같이 더 작은 숫자로 제한하면 작동 할 것입니다.

model_all = graphlab.linear_regression.create(data2.tail(180), target='output', features=['input'],validation_set=None,l2_penalty=0.0002,solver = 'auto') 
model_all.get("coefficients").print_rows(num_rows=100) 
Linear regression: 
-------------------------------------------------------- 
Number of examples   : 180 
Number of features   : 1 
Number of unpacked features : 1 
Number of coefficients : 2 
Starting Newton Method 
-------------------------------------------------------- 
+-----------+----------+--------------+--------------------+---------------+ 
| Iteration | Passes | Elapsed Time | Training-max_error | Training-rmse | 
+-----------+----------+--------------+--------------------+---------------+ 
| 1   | 2  | 0.000866  | 9.873043   | 4.272624  | 
+-----------+----------+--------------+--------------------+---------------+ 
SUCCESS: Optimal solution found. 
+----------------+-------+------------------+-------------------+ 
|  name  | index |  value  |  stderr  | 
+----------------+-------+------------------+-------------------+ 
| (intercept) | None | 9.3412783539 | 3.80166353756 | 
| DOEDDIST.Index | None | 0.00226165438702 | 0.000975084975224 | 
+----------------+-------+------------------+-------------------+ 
[2 rows x 4 columns] 

숫자 오버플로 오류의 원인을 이해하지 못합니다. 누군가 설명 할 수 있습니까?

감사합니다.

+0

이 작업을 해결하면 필요한 다른 솔버를 언제든지 선택할 수 있습니다. 이것을 디버깅하려면 실제로 데이터가 표시되어야하지만, 실제로는 이상하게 보입니다. – sascha

+0

답장을 보내 주셔서 감사합니다. – Pollyanna

답변

0

저는 데이터를 두 배로 확인했으며 실제로 NaN 항목이 있습니다. 내 잘못이야. data.dropna(axis = 'index',how = 'any',inplace=True)이 해결합니다.