LinearRegression(),赔率y

问题描述 投票:0回答:1

我具有以下knn模型的train_size和精度:

train_sizes = [100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600]
accuracies = [0.702, 0.791, 0.811, 0.866, 0.905, 0.927, 0.939, 0.952, 0.963]

我想用x计算赔率(y)= y /(1-y):

# First we traspose the features
X = np.array(train_sizes)[:,np.newaxis]
y = np.array(accuracies)[:,np.newaxis]

#Transform Y, using odds(y)=y/(1-y)
odds_y=y/(1-y)
regression_model = LinearRegression()
regression_model.fit(X, odds_y)
Accuracy_oddsy = regression_model.predict([[60000],[120000],[1000000]])
print('Accuracy for n = 60000, 120000, and 1000000 are:', Accuracy_oddsy)

但是我的精确度计算似乎已过时,因为它们已经超过了1。您能帮助我如何使用odds(y)更改代码以预测准确性吗?谢谢!

python-3.x scikit-learn linear-regression
1个回答
0
投票

您需要将odds_y转换回y

Accuracy_oddsy/(1+Accuracy_oddsy)

输出:

array([[0.98329271],
       [0.99111439],
       [0.99887043]])
© www.soinside.com 2019 - 2024. All rights reserved.