4、python简单线性回归代码案例(完整)

数据挖掘实战 专栏收录该内容
29 篇文章 3 订阅

第一、回归分析的步骤

01 根据预测目标,确定自变量和因变量

02 绘制散点图,确定回归模型类型

03 估计模型参数,建立回归模型

04 对回归模型进行检验

回归方程的精度就是用来表示实际观测点和回归方程的拟合程度的指标,使用判定系数来度量。

判定系数=相关系数R平方=ESS/TSS=1-RSS/TSS

其中:具体公式见图

TSS   总离差平方和
ESS   回归平方和
RSS   残差平方和

05 利用回归模型进行预测

第二、sklearn 建模

leModel=sklearn.linear_model.LinearRegression()

训练模型:

lrModel.fit(x,y)

模型评估:

lrModel.score(x,y)

模型预测:

lrModel.predict(x)

 

第三、代码实践

import numpy
import pandas

data = pandas.read_csv('D:\\DATA\\pycase\\number2\\Data2.csv')

# 根据预测目标,确定自变量现金和因变量流水

# 0 确定自变量因素,对数据标签进行维度的合并,此处按照渠道序列筛选分组统计(因为有跨期影响)


Data=data.groupby(
        by=['广告商']
        )['现金','流水'].agg({
       '现金': numpy.sum,
       '流水': numpy.sum
       })

# 1 数据质量分析

explore=Data.describe()

Data=Data[(Data.现金>0)&(Data.流水>0)]

# 2 数据变换,渠道之间的数据量级差距太大,进行简单的函数转换,这俩根据散点图,采用log对数函数



# 测试 range(Data.index)

# Data.columns.size

# Data.iloc[0,0]=math.log(Data.iloc[0,0])

# math.log(Data.iloc[0,0])

#  测试 Data.loc[indexs].values


import math

I=range(Data.index.size)

J=range(Data.columns.size)

i=0
j=0

for i in I:
    for j in J:
  # 逐个数据取对数 
        Data.iloc[i,j]=math.sqrt(Data.iloc[i,j])



# 0-1 标准化 from sklearn.preprocessing import MinMaxScaler

# scaler=MinMaxScaler()

# Data[['现金', '流水']]=scaler.fit_transform(Data[['现金', '流水']].values.reshape(-1,1))


# 3 属性规约

# 选择数据的自变量和因变量

x=Data['现金']
y=Data['流水']

# 绘制散点图,确定回归模型的类型

from matplotlib import pyplot as plt

plt.scatter(x,y)


# 4 估计模型参数,建立回归模型

# 对数据进行类型转化

y=y.values.reshape(-1, 1)

x=x.values.reshape(-1, 1)

from sklearn.linear_model import LinearRegression

lrModel = LinearRegression()

lrModel.fit(x, y)


# 5 对模型进行检验

lrModel.score(x,y)


# 6 利用回归模型进行预测

lrModel.predict([[500000],[400000],[300000]])


#查看截距
alpha = lrModel.intercept_[0]

#查看参数

beta = lrModel.coef_[0][0]

alpha + beta*numpy.array([500000, 400000, 300000])

 

©️2021 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值