我该如何用回归来描述这些点呢? 在本例中,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
线性回归在系数上是线性的,而不是x
值。 因为您的点看起来是立方的,所以尝试用x**3
作为一个特征来拟合一个线性回归。