установка пакетов с pip возвращает ошибку [дубликата]

Некоторые алгоритмы не будут предлагать вне прогнозируемых значений диапазона, таких как sklearn.neighbors.KNeighborsRegressor или sklearn.ensemble.RandomForestRegressor.

Линейный регресс может выдавать значения целевого диапазона, вот пример:

from sklearn.ensemble import RandomForestRegressor
import numpy as np
from sklearn.linear_model import LinearRegression

y = np.linspace(0,1,100)
X = 2* y
X = X.reshape(-1,1)

>>>> rf.predict(np.array([[4.]])), lr.predict(np.array([[4.]]))
# (array([0.9979798]), array([2.]))

, но вы можете использовать трюк: вы можете сопоставить свое пространство [0, 1] с пространством [-inf, inf] и вернуться в исходное пространство после предсказания.

Вот пример использования сигмоида:

def sigmoid(x):
    return 1/(1+np.exp(-x))

def sigmoid_m1(x):
    return -np.log((1/x)-1)

rf = RandomForestRegressor()
lr = LinearRegression()
rf.fit(X,sigmoid_m1(y*0.9+0.05))
lr.fit(X,sigmoid_m1(y*0.9+0.05))
>>>> sigmoid(rf.predict(np.array([[4.]]))), sigmoid(lr.predict(np.array([[4.]])))
# (array([0.9457559]), array([0.99904361]))

Позаботьтесь об этом решении, потому что вы полностью меняете распределение данных, и это может создать множество проблем.

1
задан BOBTHEBUILDER 19 January 2019 в 12:42
поделиться