日常数据分析工作中,如何解决实际的业务问题呢?可以按照以下步骤清洗明确的分析处理问题:
1)提出明确问题
2)理解数据(采集,导入,查看数据信息整体了解数据)
3)数据清洗(提取特征)
4)构建模型(核心,本文用Scikit-learn包)
5)评估结果(模型准确性,预测效果等)
这几个步骤可以迅速定位并解决实际业务需求。
本文写写学习时间与学习成绩之间的相关性分析,简单线性关系
一、构建数据集
二、绘制学习时间与成绩散点图,观察相关关系
从学习时间—成绩散点图可以看出,随着投入学习时间的增加,成绩越高。
插播一个知识点~~~
线性相关性:正线性相关,负线性相关,随机
如何衡量两个变量的相关性程度?
1)两个变量的相关性方向,正相关性,协方差>0;负相关性,协方差<0
统计指标:协方差(度量各个维度偏离其均值的程度。协方差的值如果为正值,则说明两者是正相关的(从协方差可以引出“相关系数”的定义),结果为负值就说明负相关的,如果为0,也是就是统计上说的“相互独立”。)
公式意思就是:如果有x,y两个变量,每个时刻的X值与其均值之差 乘以 Y值与其均值之差得到的乘积,再对每个时刻的乘积求和并求出均值(期望)
2)相关性大小:表示两个变量相关性程度
统计指标:相关性系数
公式意义:用X,Y的协方差除以X的标准差和Y的标准差
相关性也可以看成协方差:一种剔除了两个变量量纲影响、标准化后的特殊协方差。
那么:
1、也可以反映两个变量变化时是同向还是反向,如果同向变化就为正,反向变化就为负
2、消除了两个变量变化幅度的影响,只是单纯反映两个变量每单位变化的相似程度
相关系数数值意义:[-1,1]
具体推论过程参考下文:
那么,我们就尝试用Python代码计算下‘学习时间’与‘成绩’之间的相关系数
得出学习时间与成绩是强正线性相关关系,相关性系数为0.923985。
三、用sklearn包中Linear regression 构建线性回归模型,通过‘学习时间’预测‘成绩’,构建最佳拟合线
回归方程 y = a + b x, a 为截距,b为回归系数
如何求a和b呢?
一个点的误差=实际值 -预测值
求 误差平方和
最小值
方法:最小二乘法:使误差平方和最小
1)创建训练数据与测试数据
2)训练模型
四、模型评估
参数模型已经确定,接下来用测试数据来评估模型准确性
如何评估模型的准确性呢?
上图看出,误差平方和容易受到样本量的影响,引入决定系数R^2能更好的评估模型准确性,R^2=[0,1]
得出模型的决定系数R^2为0.9,模型准确性强。
五、总结