Browse Source
- 重构了模型信息相关的数据结构和接口 - 新增了模型训练和测试相关的功能 - 优化了模型数据的存储和传输格式- 调整了部分字段名称和类型,提高了数据准确性pull/20/head
19 changed files with 545 additions and 239 deletions
@ -1,32 +0,0 @@ |
|||
package cn.iocoder.yudao.module.alert.controller.admin.model; |
|||
|
|||
import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
|||
import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataQuery; |
|||
import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataVO; |
|||
import cn.iocoder.yudao.module.alert.controller.admin.model.vo.TimeRange; |
|||
import cn.iocoder.yudao.module.alert.service.model.ModelDataService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
/** |
|||
* @author chenjiale |
|||
* @version 1.0 |
|||
* @date 2023-09-05 22:08 |
|||
*/ |
|||
@RestController |
|||
@RequiredArgsConstructor |
|||
@RequestMapping("/alert/model/data") |
|||
public class ModelDataController { |
|||
private final ModelDataService modelDataService; |
|||
|
|||
|
|||
@GetMapping("/{id}") |
|||
public CommonResult<ModelDataVO> getModelData(@PathVariable Integer id, ModelDataQuery query) { |
|||
return CommonResult.success(null); |
|||
} |
|||
|
|||
@PostMapping("/calculate/{id}") |
|||
public CommonResult<Boolean> calculate(@PathVariable Integer id, @RequestBody TimeRange timeRange) { |
|||
return CommonResult.success(null); |
|||
} |
|||
} |
@ -0,0 +1,41 @@ |
|||
package cn.iocoder.yudao.module.alert.controller.admin.model.model; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class TrainTime { |
|||
/** |
|||
* 开始时间 |
|||
*/ |
|||
private String st; |
|||
|
|||
/** |
|||
* 结束时间 |
|||
*/ |
|||
private String et; |
|||
|
|||
/** |
|||
* 时长(秒) |
|||
*/ |
|||
private Integer duration; |
|||
|
|||
/** |
|||
* 采样数量 |
|||
*/ |
|||
private Integer number; |
|||
|
|||
/** |
|||
* 清洗样本数 |
|||
*/ |
|||
private Integer filter; |
|||
|
|||
/** |
|||
* 有效样本数 |
|||
*/ |
|||
private Integer mode; |
|||
|
|||
} |
@ -0,0 +1,87 @@ |
|||
package cn.iocoder.yudao.module.alert.controller.admin.model.vo; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonInclude; |
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@JsonInclude(JsonInclude.Include.NON_NULL) |
|||
public class ModelInfoDetails { |
|||
|
|||
@JsonProperty("Train_X_min") |
|||
private List<Double> trainXMin; |
|||
|
|||
@JsonProperty("Train_X_max") |
|||
private List<Double> trainXMax; |
|||
|
|||
@JsonProperty("Train_X_std") |
|||
private List<Double> trainXStd; |
|||
|
|||
@JsonProperty("Train_X_mean") |
|||
private List<Double> trainXMean; |
|||
|
|||
@JsonProperty("Train_X_bais_max") |
|||
private List<List<Double>> trainXBaisMax; |
|||
|
|||
@JsonProperty("Train_X_bais_min") |
|||
private List<List<Double>> trainXBaisMin; |
|||
|
|||
@JsonProperty("Train_X_bais_mean") |
|||
private List<List<Double>> trainXBaisMean; |
|||
|
|||
@JsonProperty("QCUL_95") |
|||
private double qcul95; |
|||
|
|||
@JsonProperty("QCUL_99") |
|||
private double qcul99; |
|||
|
|||
@JsonProperty("QCUL_95_line") |
|||
private List<Double> qcul95Line; |
|||
|
|||
@JsonProperty("QCUL_99_line") |
|||
private List<Double> qcul99Line; |
|||
|
|||
@JsonProperty("T2CUL_95") |
|||
private double t2cul95; |
|||
|
|||
@JsonProperty("T2CUL_99") |
|||
private double t2cul99; |
|||
|
|||
@JsonProperty("T2CUL_95_line") |
|||
private List<Double> t2cul95Line; |
|||
|
|||
@JsonProperty("T2CUL_99_line") |
|||
private List<Double> t2cul99Line; |
|||
|
|||
@JsonProperty("Kesi_95") |
|||
private double kesi95; |
|||
|
|||
@JsonProperty("Kesi_99") |
|||
private double kesi99; |
|||
|
|||
@JsonProperty("Kesi_95_line") |
|||
private List<Double> kesi95Line; |
|||
|
|||
@JsonProperty("Kesi_99_line") |
|||
private List<Double> kesi99Line; |
|||
|
|||
@JsonProperty("COV") |
|||
private List<List<Double>> cov; |
|||
|
|||
@JsonProperty("K") |
|||
private int k; |
|||
|
|||
@JsonProperty("R") |
|||
private double r; |
|||
|
|||
@JsonProperty("featValue") |
|||
private List<Double> featValue; |
|||
|
|||
@JsonProperty("featVec") |
|||
private List<List<Double>> featVec; |
|||
|
|||
@JsonProperty("selectVec") |
|||
private List<List<Double>> selectVec; |
|||
} |
@ -0,0 +1,58 @@ |
|||
package cn.iocoder.yudao.module.alert.controller.admin.model.vo; |
|||
|
|||
import cn.iocoder.yudao.module.alert.common.enums.Algorithm; |
|||
import cn.iocoder.yudao.module.alert.controller.admin.model.model.Point; |
|||
import cn.iocoder.yudao.module.alert.controller.admin.model.model.TrainTime; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.*; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@Builder |
|||
@ToString |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public class ModelInitVO { |
|||
/** |
|||
* id |
|||
*/ |
|||
private Integer id; |
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String founder; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date createTime; |
|||
|
|||
/** |
|||
* 运行条件 |
|||
*/ |
|||
private String condition; |
|||
|
|||
/** |
|||
* 名称 |
|||
*/ |
|||
private String modelName; |
|||
|
|||
private String description; |
|||
|
|||
|
|||
private List<Point> pointInfo; |
|||
|
|||
private List<TrainTime> trainTime; |
|||
|
|||
private Algorithm algorithm; |
|||
|
|||
private Integer systemId; |
|||
|
|||
private Integer sampling; |
|||
|
|||
private BigDecimal rate; |
|||
} |
@ -0,0 +1,20 @@ |
|||
package cn.iocoder.yudao.module.alert.controller.admin.model.vo; |
|||
|
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class ModelTestData { |
|||
private List<List<Double>> sampleData; |
|||
private List<List<Double>> reconData; |
|||
private List<List<Double>> errorData; |
|||
private Integer R; |
|||
private List<Double> SPE; |
|||
private List<List<Integer>> paraState; |
|||
private String time; |
|||
} |
@ -0,0 +1,26 @@ |
|||
package cn.iocoder.yudao.module.alert.controller.admin.model.vo; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class TrainInfo { |
|||
@JsonProperty("Model_info") |
|||
private ModelInfoDetails modelInfo; |
|||
|
|||
@JsonProperty("Model_type") |
|||
private String modelType; |
|||
|
|||
@JsonProperty("BeforeCleanSamNum") |
|||
private int beforeCleanSamNum; |
|||
|
|||
@JsonProperty("AfterCleanSamNum") |
|||
private int afterCleanSamNum; |
|||
|
|||
@JsonProperty("CleanOrNot") |
|||
private boolean cleanOrNot; |
|||
} |
@ -0,0 +1,31 @@ |
|||
package cn.iocoder.yudao.module.alert.param; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class ModelTestParam { |
|||
@JsonProperty("Test_Data") |
|||
private TestData testData; |
|||
private Integer modelId; |
|||
private String version; |
|||
|
|||
@Data |
|||
@NoArgsConstructor |
|||
@AllArgsConstructor |
|||
public static class TestData { |
|||
private String time; |
|||
private String points; |
|||
private Integer interval; |
|||
@JsonProperty("AddBias") |
|||
private List<Double> addBias; |
|||
@JsonProperty("AddBias_Time") |
|||
private String addBiasTime; |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
package cn.iocoder.yudao.module.alert.param; |
|||
|
|||
import com.alibaba.fastjson.annotation.JSONField; |
|||
import com.fasterxml.jackson.annotation.JsonAlias; |
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public class TrainParam { |
|||
@JsonAlias("Train_Data") |
|||
@JsonProperty("Train_Data") |
|||
private TrainData trainData; |
|||
|
|||
@JsonAlias("Hyper_para") |
|||
@JsonProperty("Hyper_para") |
|||
private HyperPara hyperPara; |
|||
private String type; |
|||
private String condition; |
|||
|
|||
@JsonAlias("smote_config") |
|||
@JsonProperty("smote_config") |
|||
private String smoteConfig; |
|||
|
|||
private Boolean smote; |
|||
|
|||
private String targetPoint; |
|||
|
|||
@Data |
|||
public static class Smote { |
|||
private String pointId; |
|||
private String max; |
|||
private String min; |
|||
private String number; |
|||
} |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public static class HyperPara { |
|||
private Double percent; |
|||
} |
|||
|
|||
@Data |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
public static class TrainData { |
|||
private String time; |
|||
private String points; |
|||
private String dead; |
|||
private String limit; |
|||
private String uplow; |
|||
} |
|||
} |
@ -1,26 +0,0 @@ |
|||
package cn.iocoder.yudao.module.alert.service.model; |
|||
|
|||
|
|||
import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataVO; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author chenjiale |
|||
* @version 1.0 |
|||
* @date 2023-09-05 22:10 |
|||
*/ |
|||
public interface ModelDataService { |
|||
/** |
|||
* 获取模型数据 |
|||
* |
|||
* @param modelId 模型id |
|||
* @param type 类型 |
|||
* @param indexList 边界参数索引 |
|||
* @param st 开始时间 |
|||
* @param et 结束时间 |
|||
* @return 模型数据 |
|||
*/ |
|||
ModelDataVO getModelData(Integer modelId, String type, List<Integer> indexList, Date st, Date et); |
|||
} |
@ -1,29 +0,0 @@ |
|||
package cn.iocoder.yudao.module.alert.service.model.impl; |
|||
|
|||
import cn.iocoder.yudao.module.alert.controller.admin.model.vo.ModelDataVO; |
|||
import cn.iocoder.yudao.module.alert.service.model.ModelDataService; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author chenjiale |
|||
* @version 1.0 |
|||
* @date 2023-09-05 22:11 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@RequiredArgsConstructor |
|||
public class ModelDataServiceImpl implements ModelDataService { |
|||
|
|||
|
|||
@Override |
|||
public ModelDataVO getModelData(Integer modelId, String type, List<Integer> indexList, Date st, Date et) { |
|||
|
|||
|
|||
return null; |
|||
} |
|||
} |
Loading…
Reference in new issue