R平方算法实现,箭头导出图片不显示问题处理
parent
9e9b617c7a
commit
d77f330713
Binary file not shown.
After Width: | Height: | Size: 248 B |
|
@ -136,6 +136,7 @@
|
|||
import { productTypeMap } from "@/lib/variateMap";
|
||||
import { truthFunVal, productSubTypeVal } from "@/lib/contract";
|
||||
import * as turf from "@turf/turf";
|
||||
import arrow from "@/assets/images/arrow.png"
|
||||
export default {
|
||||
props: {
|
||||
realRes: {
|
||||
|
@ -174,7 +175,7 @@ export default {
|
|||
tDatas: null,
|
||||
midValue: 10,
|
||||
erExpression: null,
|
||||
erR2: "r² = 0.037207",
|
||||
erR2: "",
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -313,13 +314,31 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
calculateR2(y, yHat) {
|
||||
// y:真实值 yhat:预测值
|
||||
// 计算观测值的平均值
|
||||
const meanY = y.reduce((acc, val) => acc + val, 0) / y.length;
|
||||
// 计算回归平方和(SSR)
|
||||
const totalSumOfSquares = yHat.map(val => Math.pow(val - meanY, 2)).reduce((acc, val) => acc + val, 0);
|
||||
// 计算残差平方和(SSE)
|
||||
const residualSum = y.map((val, index) => Math.pow(val - yHat[index], 2)).reduce((acc, val) => acc + val, 0);
|
||||
// 计算回归平方和(SST)
|
||||
const residualSumOfSquares = totalSumOfSquares + residualSum;
|
||||
// 计算 R2 决定系数
|
||||
const rSquared = 1 - (residualSum / residualSumOfSquares);
|
||||
return rSquared;
|
||||
},
|
||||
drawPie(errorVala) {
|
||||
let data = [];
|
||||
let xArr = [];
|
||||
const observedValues = [];
|
||||
const predictedValues = [];
|
||||
for (let i in errorVala) {
|
||||
const a = [errorVala[i].cre_imageValue, errorVala[i].cre_deviation];
|
||||
xArr.push(errorVala[i].cre_imageValue);
|
||||
data.push(a);
|
||||
observedValues.push(errorVala[i].cre_deviation);
|
||||
predictedValues.push(errorVala[i].cre_imageValue);
|
||||
}
|
||||
// const x_limit = Math.abs(Math.max(...xArr) / xArr.length);
|
||||
//多项式回归
|
||||
|
@ -328,6 +347,8 @@ export default {
|
|||
}).reduce((acc, curr) => acc + curr, 0);
|
||||
let rmseValue = "RMSE = "+ Math.sqrt(wcpf/data.length);
|
||||
let myRegression = this.echartRegression("polynomial", data, 1);
|
||||
// 计算 R2 决定系数
|
||||
this.erR2 = "r² = " + this.calculateR2(observedValues, predictedValues);
|
||||
var option = {
|
||||
title: {
|
||||
text: this.pdSubTypeName + "误差结果图",
|
||||
|
@ -416,10 +437,16 @@ export default {
|
|||
{
|
||||
name: "r2",
|
||||
icon: "circle",
|
||||
itemStyle: {
|
||||
color:"#FFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
name:"RMSE",
|
||||
icon: "circle",
|
||||
itemStyle: {
|
||||
color:"#FFF"
|
||||
}
|
||||
}
|
||||
],
|
||||
formatter: (name) => {
|
||||
|
@ -600,7 +627,8 @@ export default {
|
|||
},
|
||||
{
|
||||
// symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAAjVJREFUeF7tmM1JAwEYBb90Yg1WYGeWYhd69OTVEjxagldlJeAfibtkIBOYgARk8/ZlJm/jupseKgI7VZvKTEJkH4KEJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREaAq3M9M8+nxrWQUwl+vf59Zl5m5mFm7vfPy+82PRKyCdfRg3/Df9tLWQQtP69rTpWQNZTWHfPfGp6+CTp4aVuE3M7MzbpzdtQRAlsYHry0LUIeE3LWD9qPS1tCzuri8+R/hNzNzNX5e118A+ySdfEkJG8A+1KXvJ+Lr9GfvTKF3RjKhPSvE5kQpE536ghGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLuQDLNIwmfEn5ZUAAAAASUVORK5CYII=",
|
||||
symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAAv0lEQVR4nO3UsUmEQRCA0U801cASxECwAUOrMLEly7CGM7OAM/ZSCxBzA0ERLjqQQ3G5X//3YLPdYWZ2dgMAAAAAAAAAAIBd25/hDVxUR9Xzdw/OsVmn1bK6qk6qt+ppAnlN0mX1vrFeqtvqujr+Kum9CRe1HBT3sDrbsue+WlR31WpQHr9q8/Z3tR6rm8/CDibcrIdBcf/lZI3y4z9rypM12mo9OYv1JG01x2a9Vudzf14AAAAAAAAAAAD8RdUHTdhBNENzGoYAAAAASUVORK5CYII=",
|
||||
// symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAAv0lEQVR4nO3UsUmEQRCA0U801cASxECwAUOrMLEly7CGM7OAM/ZSCxBzA0ERLjqQQ3G5X//3YLPdYWZ2dgMAAAAAAAAAAIBd25/hDVxUR9Xzdw/OsVmn1bK6qk6qt+ppAnlN0mX1vrFeqtvqujr+Kum9CRe1HBT3sDrbsue+WlR31WpQHr9q8/Z3tR6rm8/CDibcrIdBcf/lZI3y4z9rypM12mo9OYv1JG01x2a9Vudzf14AAAAAAAAAAAD8RdUHTdhBNENzGoYAAAAASUVORK5CYII=",
|
||||
symbol:"image://" + arrow,
|
||||
symbolRotate: (number, params) => {
|
||||
console.log(number, params);
|
||||
return bearingArr[params.dataIndex];
|
||||
|
|
|
@ -35,7 +35,8 @@ module.exports = {
|
|||
}
|
||||
},
|
||||
[process.env.VUE_APP_REALITY_API]: {
|
||||
target: "https://124.16.188.131:28092/microwave",
|
||||
target: "http://192.168.88.199:18092/microwave",
|
||||
// target: "https://124.16.188.131:28092/microwave",
|
||||
// target: "http://192.168.1.227:18092/microwave",
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
|
@ -43,7 +44,8 @@ module.exports = {
|
|||
}
|
||||
},
|
||||
[process.env.VUE_APP_FILE_API]: {
|
||||
target: "https://124.16.188.131:28093/file",
|
||||
target: "http://192.168.88.199:18093/file",
|
||||
// target: "https://124.16.188.131:28093/file",
|
||||
// target: "http://192.168.1.227:18093/file",
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
|
|
Loading…
Reference in New Issue