提问者:小点点

利用python中的sklearn实现连续数据的Logistic回归


我该如何用回归来描述这些点呢? 在本例中,LinearRegression不适合点的logistic分布。 sklearn中的LogisticRegression()只接受二进制数据。 我的y值是从0到1连续的。 我是否必须对数据进行转换,或者如何获得合适的模型?

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import LogisticRegression

a = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14])
b = [0,0,0.01,0.08,0.16,00.28,0.5,0.66,0.8,0.9,0.95,0.99,1,1]
data = pd.DataFrame({'x': a, 'y':b})

LM = LinearRegression()
LM.fit(data[["x"]],data[["y"]])

plt.scatter(a,b)
plt.plot([1,14], LM.predict([[1],[14]]), color = "red")
plt.show() 

LogM = LogisticRegression()
LogM.fit(data[["x"]],data[["y"]])  # doesn't work


共1个答案

匿名用户

线性回归在系数上是线性的,而不是x值。 因为您的点看起来是立方的,所以尝试用x**3作为一个特征来拟合一个线性回归。