tensorflow学习:第三课,数学基础之线性回归

 

 

线性回归求B公式:

 

 

 公式解释:

 

 

 ∑ 该符号是一个求和的意思,可以解释为:xi={x1+x2+x3...+xn},

∑ 符号下面的i=1,就是说从1开始将列表里面的数据加到n,就是将列表里面是数据求和。

视频教程:

https://www.bilibili.com/video/BV1FV411C7VL?from=search&seid=10651213649538946425  

 

实例:根据温度预测卖冰激凌个数

用代码表示:

以下为javascript代码:

<script>
function avg(arr) {//封装求平均值函数
        var len = arr.length;
        var sum = 0;
        for(var i = 0;i<len;i++){
            sum +=arr[i];
        }
        return sum/len;
    }

function linearRegression(x1){
    var x=[25.0,26.0,27.0,28.0,29.0];  //把各个温度值放到x数组
    var y=[10.0,15.0,17.0,23.0,25.0];  //冰激凌卖的个数放到y数组

    //第一步算b的值

    //1,先取x的平均值:
    var avg_x=avg(x);
    //console.log(avg_x);
    //2,再去y的平均值:
    var avg_y=avg(y);
    //console.log(avg_y);
    //3,再用循环x数组依次减去avg_x , 循环y数组依次减去avg_y 进行相乘求和:
    var v1=0;//分子
    var v2=0;//分母
    for(var i=0;i<x.length;i++){
      v1+=(x[i]-avg_x)*(y[i]-avg_y);
      //console.log(v1);
      v2+=(x[i]-avg_x)*(x[i]-avg_x);
    }
    
    console.log(v1);
    console.log(v2);
    
    var b=v1/v2;
    console.log(b);
    //第二步算a的值:
    var a=avg_y-b*avg_x;
    console.log(a);

    //最终得出的值:
     return b*x1-a;
}
console.log(linearRegression(32));

</script>

 

posted @ 2020-10-11 22:27  likecs  阅读(195)  评论(0编辑  收藏  举报