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>