社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

实战 | 如何预测广告收入?利用 Python 只需四步就能实现,因为回归分析并不难 (附数据集与代码)

大数据分析和人工智能 • 5 年前 • 647 次点击  

01 案例介绍

某互联网公司记录了某一款产品的营销投入与收入额,如下表所示:当投入20万时,收入额是57万;投入38万元时,收入额是84万。



因为营销效果明显,公司决定再投入40万元,请您帮助公司预测收入额是多少?如果您能给出一个大概的预测收入区间,公司会对您有额外的奖励。


02 案例解析


根据案例描述,我们很容易确定其为预测问题。进一步,我们确定所用算法模型是回归分析算法。


除预测问题以外,在 Python数据挖掘中,我们还经常遇到分类问题、关联问题等等。面对不同的商业问题,我们需要使用不同的机器学习算法。Python实战圈以帮您总结完成,并配有大量案例实战。


03 什么是回归分析(Regression Analysis)


回归分析是研究自变量与因变量之间关系形式的分析方法。它主要是通过建立因变量y与影响它的自变量Xi (i = 1,2,3……)之间的回归模型来预测因变量y的发展趋势。回归的意思是找到最佳拟合参数,形成回归方程,然后对变量进行预测。

它的分类主要有:

  • 线性回归分析

    • 简单线性回归

    • 多重线性回归

  • 非线性回归分析

    • 逻辑回归

    • 神经网络

04 利用回归分析,四步预测广告收入


根据回归分析概念,我们总结出回归分析的解析步骤,共4步,如下:

第一步是数据处理,确定自变量和因变量

第二步是绘制图像,确定使用那种回归模型

第三步是建立回归模型

第四步是根据模型预测结果


根据4步,我们首先构建Python程序的主流程:


def main():
    file_name = 'data.csv'

    # 预测数据 自变量
    predict_aim = 40

    # 第一步 数据处理,确定自变量和因变量
    processed_data, x, y = process_data(file_name)

    # 第二步 绘制图像,确定回归模型
    show_data(processed_data)

    # 第三步 建立回归模型
    lrMode_predict, score_lr= model_data(processed_data, x, y, predict_aim)

    # 第四步 根据模型预测结果
    predict_data(lrMode_predict, predict_aim, score_lr,predict_aim)


if __name__ == '__main__':
    # 主函数
    main()


05 第一步:数据处理


根据题目要求,求40万的营销收入。营销收入是未知的,而营销投入是已知的。营销投入是自变量;收入额是因变量。代码如下:


def process_data(file):
    """
        第一步:
        功能数据处理:导入数据
    :param file:
    :return:
    """

    print('开始处理')
    # 读取数据集
    data = read_csv(file)
    # print(data)

    '''
        确定自变量和因变量, 未知的是因变量;已知的是自变量
    '''

    x = data[['营销投入']]
    y = data[['收入额']]

    return data, x, y



06 第二步:判断使用哪种回归模型


根据数据集,我们可以画出自变量与因变量的散点图,进而判断是否可以建立回归方程。判断的依据是它们是否具有强相关关系。文末扫码获得完整代码。从结果,我们可以看到广告收入与销售额呈现线性关系,并且相关系数是0.84。我们可以使用简单线性回归方程预测40万广告费对应收入的结果



07 第三步:建立回归模型


要建立回归模型,就要先估计出回归模型的参数A和B,那么如何得到最佳的A和B,使得尽可能多的数据点落在或者更加靠近这条拟合出来的直线上呢?


统计学家研究出一个方法,就是最小二乘法,最小二乘法又称最小平方法,通过最小化误差的平方和寻找数据的最佳直线,这个误差就是实际观测点和估计点间的距离;最小二乘法名字的缘由有二个:一是要将误差最小化,二是使误差最小化的方法是使误差的平方和最小化;在古汉语中,平方称为二乘,用平方的原因就是要规避负数对计算的影响,所以最小二乘法在回归模型上的应用就是要使得实际观测点和估计点的平方和达到最小,也就是上面所说的使得尽可能多的数据点落在或者说更加靠近这条拟合出来的直线上;我们只要了解最小二乘法的原理即可,具体计算的过程就交给Python处理,具体代码如下:


def model_data(processed_data, x, y, predict_data):
    """
        第三步:
        功能:建立回归模型
        确定自变量:【'广告投入'】
        因变量:销售额
    :param processed_data:
    :return:
    """


    # 使用sklearn模块中LinearRegression,初始化模型
    lrModel = LinearRegression()
    lrModel.fit(x, y)

    # 对模型进行评分检验
    score_lr = lrModel.score(x, y)
    print(f'模型的评分是:{score_lr}')

    


08 第四步:预测结果


得到评分高的模型以后,我们就可以使用其预测结果,比如预测40万的销售额是多少?我们使用两种方法,第一个是直接使用模型预测,第二个是使用得到的线性方程预测。如果两者预测的结果一样,说明模型正确。代码如下:


def predict_data(lrMode_predict, data, score_lr, predict_data):
    """
    第四步:
        根据模型预测结果
    :param lrMode_predict:
    :return:
    """

    # 利用模型预测
    predict_50 = lrMode_predict.predict([[data]])
    print('40万的预测是:', predict_50)


    '''
            请思考如何得到区间预测值?请后台或者加入实战圈与作者讨论
    '''


预测结果:

40万的预测结果是: [[96.46960667]]

40万预测的区间是:[ [69.41890637] [123.52030698] ]


09 推荐一个保你学会 Python的实战圈

手把手教你学Python

请扫码获得本案例完整代码与数据集


只需7天时间,跨进Python编程大门,已有1800+加入

基础】0基础入门python,24小时有人快速解答问题;
提高】40多个项目实战,老手可以从真实场景中学习python;
直播】不定期直播项目案例讲解,手把手教你如何分析项目;
分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
人脉】收获一群志同道合的朋友,并且都是python从业者
价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。

赠予】后续圈主将开发python,0基础入门在线课程,免费送给圈友们,供巩固和系统化复习

三重福利)最近入圈送大礼包:

1、2.7G、308份最新数据分析报告
2、40G 人工智能算法  视频课
3、Python爬虫课,共14课


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/SdgE6xFLjb
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/29087
 
647 次点击