1

我有一个运行良好的回归模型,其中自变量和因变量通过数据框架进行解析。我想以%格式给它添加权重,并在新列中添加了值。

如何为每个独立条目创建一个新的回归模型和方程,并在单独的数据框架中为其分配权重?

df=pd.read_excel(“加权测试.xlsx”)grouped=df.groupby('sc')sc=[]区域=[]方程式=[]m_value=[]c_value=[]df['Avg_actual_cube'].fillna(0,inplace=True)df['Actual_TPH'].fillna(0,inplace=True)df['Weight'].fillna(0,inplace=True)分组.head()

输出:

sc区域平衡周_天平衡年_天实际_TPH平均_实际_立方块重量0 ABQ5西周53 2023 122.443157 0.490000 0.11 ABQ5西周36 2023 96.074478 0.445714 0.22 ABQ5西周22 2024 87.164843 0.510000 0.3

如果我在单独的数据框中定义权重并运行回归,就会抛出一个错误。有人能确认一下,我遗漏了什么?

sample_weight=df[“重量”]对于group_name,group_data in grouped:X=group_data\[Avg_actual_cube'\].values.整形(-1,1)y=组数据\['Actual_TPH'\].valuesweighted_model=线性回归()模型.拟合(X,y,sample_weight)sc.append(组名)区域.append(group_data['region'].values[0])equations.append('TPH={:.2f}立方体+{:0.2f}'.format(model.coef[0],model.intercept_))m_value.append(模型系数[0])c_value.append(model.intercept)`

输出错误:

ValueError回溯(最后一次调用)输入In[14],In<cell line:1>()3 y=组数据['Actual_TPH'].值4加权模型=线性回归()---->5模型拟合(X,y,sample_weight)7 sc.append(组名)8区域.append(group_data['region'].values[0])文件~\Anaconda3\lib\site-packages\sklearn\linear_model\_base.py:667,位于LinearRegression.fit(self,X,y,sample_weight)中662 X,y=自身_validate_data(验证_数据)(663 X,y,accept_sparse=接受解析,y数值=真,多输出=真664 )666如果sample_weight不是None:-->667 sample_weight=_check_sample_weight(样本_重量,X,数据类型=X.dtype)669 X,y,X _偏移,y _偏移,X _缩放=自身_预处理数据(670倍,671年,(...)676 return_mean=真,677 )679如果sample_weight不是None:680#样品重量可以通过简单的缩放来实现。文件~\Anaconda3\lib\site-packages\sklearn\utils\validation.py:1565,在_check_sample_weight中(sample_weight,X,dtype,copy)1562 raise ValueError(“样本权重必须是1D数组或标量”)1564如果sample_weight.shape!=(n个样本,):->1565提升ValueError(1566“sample_weight.shape=={},应为{}!”.format(1567个sample_weight.shape,(n_samples,)1568             )1569         )1571返回样本_重量ValueError:sample_weight.shape==(5967,),应为(52,)!
新贡献者
高拉夫·赫格德是此网站的新贡献者。请注意要求澄清、评论和回答。查看我们的行为准则.
2
  • 两件事:(1)请提供一些样品代码-格式化数据,允许我们复制您的问题,而不是图像,(2)请将您的回溯粘贴到代码格式化而不是图像。请参阅如何创建最小、可复制的示例了解更多有用的详细信息。 评论 2天前
  • 对不起,这是我第一次在这里发帖。这有帮助吗? 评论 昨天

0

重置为默认值

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.