Я пытаюсь использовать эллиптический конверт для обнаружения выбросов в моих данных. Однако после масштабирования я получаю много предупреждений во время выполнения, которые мешают мне получить предсказания, которые я ищу.
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\sklearn\covariance\robust_covariance.py:677: RuntimeWarning: invalid value encountered in true_divide
self.dist_ /= correction
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\sklearn\covariance\robust_covariance.py:716: RuntimeWarning: invalid value encountered in less
mask = self.dist_ < chi2(n_features).isf(0.025)
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\sklearn\covariance\robust_covariance.py:720: RuntimeWarning: Mean of empty slice.
location_reweighted = data[mask].mean(0)
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\numpy\core\_methods.py:78: RuntimeWarning: invalid value encountered in true_divide
ret, rcount, out=ret, casting='unsafe', subok=False)
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\numpy\lib\function_base.py:392: RuntimeWarning: Mean of empty slice.
avg = a.mean(axis)
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\sklearn\covariance\empirical_covariance_.py:81: RuntimeWarning: Degrees of freedom <= 0 for slice
covariance = np.cov(X.T, bias=1)
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\numpy\lib\function_base.py:2451: RuntimeWarning: divide by zero encountered in true_divide
c *= np.true_divide(1, fact)
C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\numpy\lib\function_base.py:2451: RuntimeWarning: invalid value encountered in multiply
team Family date Amount scaled_amount
0 S Engineering 2018-01-05 -0.02 -1.000000
1 S Engineering 2018-02-06 -0.01 -0.333333
2 S Engineering 2018-03-06 0.00 0.333333
3 S Engineering 2018-04-06 0.00 0.333333
4 S Engineering 2018-05-07 0.00 0.333333
5 S Engineering 2018-06-06 0.00 0.333333
6 S Engineering 2018-07-05 0.00 0.333333
7 S Engineering 2018-08-06 0.00 0.333333
8 S Engineering 2018-09-06 0.00 0.333333
9 S Engineering 2018-10-04 0.01 1.000000
Код, который я использовал для предсказания, следующий:
scaled_amount_reshaped = key.scaled_amount.values.reshape(-1, 1)
model = EllipticEnvelope(contamination=0.18)
model.fit(abs(scaled_amount_reshaped))
prediction = model.predict(abs(scaled_amount_reshaped))