Python 属性错误:';线性回归';对象没有属性';预测概率';

Python 属性错误:';线性回归';对象没有属性';预测概率';,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我需要学校评分员生成的属性错误的帮助 我的任务: 我需要创建一个自定义的变压器输入到一个分级器 评分员将字典列表传递给我的估计器的predict或predict_proba方法,而不是数据帧。这意味着模型必须同时处理这两种数据类型。因此,我需要提供一个定制的ColumnSelectTransformer来代替scikit learn自己的ColumnSelectTransformer 这是我为自定义转换器编写的代码,该转换器旨在输入所提供列中的空值 来自sklearn.impute导入Simpl

我需要学校评分员生成的属性错误的帮助

我的任务: 我需要创建一个自定义的变压器输入到一个分级器

评分员将字典列表传递给我的估计器的predict或predict_proba方法,而不是数据帧。这意味着模型必须同时处理这两种数据类型。因此,我需要提供一个定制的ColumnSelectTransformer来代替scikit learn自己的ColumnSelectTransformer

这是我为自定义转换器编写的代码,该转换器旨在输入所提供列中的空值

来自sklearn.impute导入SimpleImputer
简单颜色=['BEDCERT'、'RESTOT'、'INHOSP'、'CCRC_FACIL'、'SFF'、'CHOW_LAST_12MOS'、'Spreader_STATUS'、'EXP_TOTAL'、'ADJ_TOTAL']
类别列SelectTransformer(BaseEstimator,TransformerMixin):
定义初始化(自,列):
self.columns=列
def配合(自身、X、y=无):
回归自我
def变换(自,X):
如果不存在(X,pd.数据帧):
X=pd.DataFrame(X)
返回X[self.columns].值
简单功能=管道([
('cst',列选择变压器(简单列)),
('inputer',simplemputer(strategy='mean')),
])
然后,我的任务是创建一个新的管道,并用估计器对其进行拟合,下面是我的尝试

从sklearn.linear\u模型导入线性回归
简单功能\u模型=管道([
(“简单”,简单的功能),
('linear',LinearRegression()),
])
简单特征模型拟合(数据、精细计数>0)
管道已成功生成

管道(内存=无,
步骤=[(‘简单’,
管道(内存=无,
步骤=[('cst',
ColumnSelectTransformer(columns=['BEDCERT',
“RESTOT”,
“INHOSP”,
“CCRC_FACIL”,
“SFF”,
“最后12个星期”,
“自动喷水灭火器状态”,
“经验总计”,
“调整总数”]),
(“输入者”,
SimpleImputer(添加指示符=False,复制=True,
填充值=无,
缺少_值=nan,
strategy='mean',verbose=0],
verbose=False),
(‘线性’,
线性回归(复制X=True,拟合截距=True,n\u作业=None,
normalize=False))],
详细=错误)
然而,当我把我的简单功能模型传给学校的评分员时

def正概率(模型):
def预测概率(X):
回报模型.预测概率(X)[:,1]
返回概率
grader.score.ml\u简单特征(正概率(简单特征模型))
我得到以下错误

AttributeError回溯(最近一次调用)
在()
4返回预测概率
5.
---->6年级学生。分数。ml \简单\特征(正概率(简单\特征\模型))
/函数中的opt/conda/lib/python3.7/site-packages/static_grader/grader.py(*args,**kw)
92定义获取属性(自我,方法):
93 def func(*参数,**kw):
--->94返回自我(方法,*args,**kw)
95返回函数
96
/opt/conda/lib/python3.7/site-packages/static\u grader/grader.py in\uuuuu call\uuuuu(self,question\u name,func)
88返回
89测试用例=json.loads(分别为文本)
--->90个测试案例评分(问题名称、功能、测试案例)
91
92定义获取属性(自我,方法):
/测试案例评分中的opt/conda/lib/python3.7/site-packages/static\u grader/grader.py(问题名称、函数、测试案例)
40对于测试用例中的测试用例:
41如果检查isroutine(func):
--->42 sub_res=func(*test_case['args'],**test_case['kwargs'])
43 elif非测试用例['args']和非测试用例['kwargs']:
44 sub_res=func
在预测概率中(X)
1 def正概率(模型):
2 def_proba(X):
---->3收益模型。预测概率(X)[:,1]
4返回预测概率
5.
/opt/conda/lib/python3.7/site-packages/sklearn/utils/metaestimators.py in_u________(self,obj,type)
108继续
109其他:
-->110 getattr(委托、自身属性\u名称)
111休息
112其他:
AttributeError:“LinearRegression”对象没有属性“predict\u proba”

线性回归模块确实没有
预测概率属性(检查),原因很简单:概率估计仅适用于分类模型,而不适用于回归(即数值预测)模型,如线性回归

由于您的帖子不清楚您是否正在尝试进行回归或分类:

  • 如果您处于回归设置中,只需将
    predict\u proba
    替换为
    predict
  • 如果您处于分类设置中,则不能使用线性回归-请改用逻辑回归(尽管名称不同,它是一种分类算法),它确实具有
    predict\u proba
    属性(请再次参阅)

线性回归模块确实没有
predict\u proba
属性(检查),原因很简单:pro