CDA数据科学研究院 CDA考试中心 CDA网校 企业服务
CDA社区
CDA竞赛 CDA技术答疑 CDA俱乐部
关于CDA APP下载 新媒体帐号交易(经管新媒) 新媒体帐号交易(经管新媒)

CDA

  • 最新
  • 热门
  • 关注
  • 推荐
  • 问答
登录 注册
免密码登录
获取验证码
行为验证™ 安全组件加载中
提交 首次登录验证后自动注册

  • 创作中心
  • 我的消息
  • 我的收藏
  • 个人资料
  • 点赞能量: %
  • 点赞价值:
  • 文章
  • 问答
  • 评论
  • 粉丝
  • 关注中
  • 钱包
  • 奖励

好的 谢谢!

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

是的,斜率为正表示上升,为负表示下降

1 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

出来了,这种情况下,斜率是正数,就是表示6个月由远到近数值在上升吧

1.png

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

出现这个错误是因为传入的y要求是一维数组,x要求是二维数组,而你简单互换身份后,没有讲x设定为二维数组,y设定为一维数组。应该这样改:

#要求y是一维数组

y=data.loc[i,"近6":"近1"].values

#要求x是二维数组,哪怕x只由一个变量

x=np.array([1,2,3,4,5,6]).reshape(6,1)


1 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

出现这个错误是因为传入的y要求是一维数组,x要求是二维数组,而你简单互换身份后,没有讲x设定为二维数组,y设定为一维数组。应该这样改:

#要求y是一维数组

y=data.loc[i,"近6":"近1"].values

#要求x是二维数组,哪怕x只由一个变量

x=np.array([1,2,3,4,5,6]).reshape(6,1)


1 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

变换x和y以后,代码这么写,斜率出来都显示是异常情况,是什么原因呢

for i in range(rows):

reg=linear_model.LinearRegression()

id=data2["credit_no"][i]

x=[1,2,3,4,5,6]

y=data2.loc[i,"近6个月里程数":"近1个月里程数"].values.reshape(6,1)

try:

reg.fit(x,y)

coef=reg.coef_[0]

except:

coef="异常情况"

data2.loc[i,"斜率"]=coef


0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

是的x就是日期,一般x是确定的,能够控制的,日期就相当于是确定的,每走一个月加一个数字1

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

以为我也想用一元线性方程,所以一元线性方程对应的x,y的参数,x是自变量,y是因变量,那么其实x应该是日期吧

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

是的

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

好像是你说的这样的,那么我是不是把代码里面x变量和y变量换一下就可以了

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

按照我的理解如果你想研究这个指标的变化趋势,横轴应该是时间,纵轴应该是指标值,那么x应该是时间,y是具体的指标值。你看下是否应该这样。

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

还有个问题,我这个代码里面,近6的数代表前6个月的数据,对应的y为“1”,那么如果我的斜率是正数,就说明我的近6到近1的数据是上升趋势对吧

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

我找到原因了,问题出在我的缩进有问题,data2.loc[i,"斜率"]=coef这行代码的缩进不正确导致的,现在可以了,感谢!

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

1.png

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

我把你的截图下载下来查看,发现里面没有截取斜率数据,你重新截一下

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

我只跑出来了最后一行数据的斜率,是不是循环出问题了?

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

我这样跑出来为什么斜率都是空的呢,只有一个有值

for i in range(rows):

reg=linear_model.LinearRegression()

id=data2["credit_no"][i]

x=data2.loc[i,"近6个月里程数":"近1个月里程数"].values.reshape(6,1)

y=[1,2,3,4,5,6]

try:

reg.fit(x,y)

coef=reg.coef_[0]

except:

coef="异常情况"


data2.loc[i,"斜率"]=coef

1.png

0 0 0

wangxishi

2020-09-10

用python拟合出每个客户的线性方程,主要想看斜率

image.png

1 0 0

wangxishi

2020-09-09

用python拟合出每个客户的线性方程,主要想看斜率

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

plt.rcParams['font.family'] = ['sans-serif']

plt.rcParams['font.sans-serif'] = ['SimHei']


# 读取数据

data_1 = pd.read_excel("直线.xlsx",index_col = "序号")

data_1


#创建一个拟合直线的函数

def linear_regression(x, y):

N = len(x)

sumx = sum(x)

sumy = sum(y)

sumx2 = sum(x ** 2)

sumxy = sum(x * y)

A = np.mat([[N, sumx], [sumx, sumx2]])

b = np.array([sumy, sumxy])

return np.linalg.solve(A, b)


slope = []

for i in range(288):

slope.append(list(linear_regression(data_1.iloc[i],b))[0])

slope


1 0 0

wangxishi

2020-09-09

用python拟合出每个客户的线性方程,主要想看斜率

image.png

image.png

1 0 0

wangxishi

2020-09-09

用python拟合出每个客户的线性方程,主要想看斜率

<1…102103104…155>
Copyright © 2015-2020, www.pinggu.com All Rights Reserved. CDA数据分析师(北京国富如荷网络科技有限公司) 版权所有 京ICP备18052299号-1