营收与预测:线性回归建立预测收入水平的线性回归模型。

这篇博客介绍了如何使用Python进行线性回归模型的建立,包括数据获取、缺失值处理、特征与目标变量的关系分析,以及模型的训练、预测和评估。通过交叉验证和VIF因子检测多重共线性,并探讨了LASSO和岭回归作为解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.获取数据

特征含义、在这里插入图片描述

## 获取数据
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
import statsmodels.api as sm #是 Python 中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检验等等的功能
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
data =  pd.read_table('C:/Users/lb/Desktop/test/earndata3.txt',sep='\t',engine="python",encoding = 'utf-8')
data.columns.values
data.head()
# # 重命名
# data.rename(columns = {'类型':'type','盈利率':'profit','付费率':'pay','活跃率':'active','收入':'income','触达比例':'touch',
#                        '转化比例':'conves','新增比例':'new','运营费用占比':'operate','服务费用占比':'servicce'},inplace = True)
# data

# 数据框操作,plt.rcParams设置图像细节,如图像大小,线条样式和宽度
# 绘制某两个维度的散点图
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
plt.scatter(data['feature35'],data['收入'])
plt.xlabel('feature35') 
plt.ylabel('收入')
plt.show()

在这里插入图片描述

2.查看缺失值和填充办法

#查看缺失值
na_num = pd.isna(data).sum()
print(na_num)
#缺失值填充
#fillna()
#df['taixin'] = df['taixin'].fillna(df['taixin'] .mean()) #均值
#df['taixin'] = df['taixin'].fillna(df['taixin'] .mode()) #众数
# df['taixin'] = df['taixin'].interpolate()  #插值法

异常值 一般用箱线图

#查看异常值
plt.boxplot(data['feature1'])
plt.show()

在这里插入图片描述
Seaborn是对matplotlib的extend,是一个数据可视化库,提供更高级的API封装,在应用中更加的方便灵活。 1.直方图和密度图 2.柱状图和热力图 3.设置图形显示效果 4.调色功能

当Pearson相关系数低于0.4,则表明变量之间存在弱相关关系;当Pearson相关系数在0.4~0.6之间,则说明变量之间存在中度相关关系;当相关系数在0.6以上时,则反映变量之间存在强相关关系
.

在这里插入图片描述
导出

# 导出为文件
import csv
outputpath='C:/Users/dell/Desktop/cor2.csv'
data_cor.to_csv(outputpath,index=True,header=True)
#绘制各变量之间的散点图
sns.pairplot(data)
plt.show()

在这里插入图片描述

#划分测试训练集
from sklearn.model_selection import train_test_split
data_x = data.drop(['收入'],axis=1)
data_y = data['收入']
train_x,test_x,train_y,test_y = train_test_split(data_x,data_y,test_size=0.3,random_state=6)
train_x.head()

在这里插入图片描述
在这里插入图片描述

3.这里把所有重新恢复成 从 0开始

# #索引恢复
for i in [train_x,test_x]:
    i.index = range(i.shape[0])
train_x.head()

在这里插入图片描述
导入linear_model模块,然后创建一个线性模型linear_model.LinearRegression,该线性回归模型创建有几个参数(可以通过help(linear_model.LinearRegression)来查看):

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)

1、fit_intercept:bool量,选择是否需要计算截距,默认为True,如果中心化了的数据可以选择false

2、normalize:bool量,选择是否需要标准化(中心化),默认为false,为true,表示标准化处理,一般不使用。可以自行使用standerdscaler

3、copy_x: bool量,选择是否复制X数据,默认True,如果否,可能会因为中心化把X数据覆盖

4、n_job:int量,选择几核用于计算,默认1,-1表示全速运转

#建立线性回归模型
from sklearn.linear_model import LinearRegression #线性回归
model = LinearRegression()
model.fit(train_x,train_y)
display(mod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值