Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据线性回归结果绘制S形曲线?_Python_Regression - Fatal编程技术网

Python 如何根据线性回归结果绘制S形曲线?

Python 如何根据线性回归结果绘制S形曲线?,python,regression,Python,Regression,我有一个线性回归分类器。我想用线性回归模型的参数(斜率和插入率)实现并绘制一条S形曲线,但我得到了一些错误 代码: 错误消息: TypeError回溯(最近一次调用上次) 在() 28返回a 29 --->30 sig=sigmoid(LR.intercept_uux,LR.coef_ux) 31 32 plt.图(X,sig) 乙状结肠(b0,b1,x) 25 a=[] 26对于x中的项目: --->27 a.附加(1/(1+数学表达式(-(b0+b1*x))) 28返回a 二十九 TypeE

我有一个线性回归分类器。我想用线性回归模型的参数(斜率和插入率)实现并绘制一条S形曲线,但我得到了一些错误

代码:

错误消息:

TypeError回溯(最近一次调用上次) 在() 28返回a 29 --->30 sig=sigmoid(LR.intercept_uux,LR.coef_ux) 31 32 plt.图(X,sig)

乙状结肠(b0,b1,x) 25 a=[] 26对于x中的项目: --->27 a.附加(1/(1+数学表达式(-(b0+b1*x))) 28返回a 二十九

TypeError:只有大小为1的数组才能转换为Python标量

x中项目的
:
a、 追加(1/(1+数学表达式(-(b0+b1*x)))
归还
我想你有打字错误
x
是一个数组,但您要将它乘以b1并加上b0
math.exp
在标量上工作,而不是在数组上。

对于x中的项:
a、 追加(1/(1+数学表达式(-(b0+b1*x)))
归还

我想你有打字错误
x
是一个数组,但您要将它乘以b1并加上b0
math.exp
在标量上工作,而不是在数组上。

谢谢,但是我得到的曲线看起来更像一条直线。不是S形曲线,但我得到的曲线看起来更像一条直线。不是一个S形曲线你能发布数据或数据链接吗?你能发布数据或数据链接吗?
import pandas as pd
import seaborn as sb
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import math

glucose1 = [i for i in range(100,123)]
glucose2 = [i for i in range(130,140)]
glucose = glucose1 + glucose2
diabetes = [1 if i>126 else 0 for i in glucose]
Data = pd.DataFrame(list(zip(glucose,diabetes)), columns = ['Glucose','Diabetes'])


Data.head()

Y = Data['Diabetes'].values
X = Data['Glucose'].values

LR = LinearRegression()
LR.fit(X.reshape(-1,1),Y)


def sigmoid(b0,b1,x):
    a = []
    for item in x:
        a.append(1/(1 + math.exp(-(b0 + b1 * x))))
    return a

sig = sigmoid(LR.intercept_, LR.coef_, X)

plt.plot(X,sig)
plt.show()