|
|
@@ -34,8 +34,8 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="训练状态">
|
|
|
<template #default="scope" >
|
|
|
- <div v-if="scope.row.trainingState==='UNTRAINED'">未训练</div>
|
|
|
- <div v-else-if="scope.row.trainingState==='TRAINING'">训练中</div>
|
|
|
+ <div v-if="scope.row.trainingState==='WAITING'">未训练</div>
|
|
|
+ <div v-else-if="scope.row.trainingState==='ON_GOING'">训练中</div>
|
|
|
<div v-else-if="scope.row.trainingState==='SUCCESS'">训练成功</div>
|
|
|
<div v-else="">训练失败</div>
|
|
|
</template>
|
|
|
@@ -64,43 +64,31 @@
|
|
|
|
|
|
|
|
|
<el-dialog title="新建模型" v-model="modelVisiable" width="30%">
|
|
|
- <el-form label-width="120px">
|
|
|
+ <el-form >
|
|
|
<el-form-item label="模型名称" required>
|
|
|
<el-input v-model="form.modelName"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="算法名称" required>
|
|
|
- <el-select v-model="form.machineLearningAlgorithm" placeholder="请选择一个算法" class="handle-select mr10">
|
|
|
- <el-option key="1" label="逻辑回归" value="LOGISTIC_REGRESSION_CLASSIFICATION"></el-option>
|
|
|
- <el-option key="2" label="决策树" value="DECISION_TREE_CLASSIFICATION"></el-option>
|
|
|
- <el-option key="3" label="梯度提升树分类" value="GRADIENT_BOOSTED_TREE_CLASSIFICATION"></el-option>
|
|
|
- <el-option key="4" label="多层感知器分类" value="MULTI_LAYER_PERCEPTRON_CLASSIFICATION"></el-option>
|
|
|
- <el-option key="5" label="朴素贝叶斯分类" value="NAIVE_BAYES_CLASSIFICATION"></el-option>
|
|
|
- <el-option key="6" label="随机森林分类" value="RANDOM_FOREST_CLASSIFICATION"></el-option>
|
|
|
- <el-option key="7" label="随机森林回归" value="RANDOM_FOREST_REGRESSION"></el-option>
|
|
|
- <el-option key="8" label="K均值聚类" value="K_MEANS_CLUSTERING"></el-option>
|
|
|
+ <el-form-item label="选择算法" required>
|
|
|
+ <el-select
|
|
|
+ v-model="form.machineLearningAlgorithm"
|
|
|
+ placeholder="请选择一个算法"
|
|
|
+ value-key="self"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item,index) in enumList"
|
|
|
+ :key="index"
|
|
|
+ :label="item.algorithmName"
|
|
|
+ :value="item"
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="MaxIter" v-model="showMaxIter" v-if="judgeAlgorithmType() === 1">
|
|
|
- <el-input v-model="form.trainParams.MaxIter"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="RegParam" v-model="showRegParam" v-if="judgeAlgorithmType() === 1">
|
|
|
- <el-input v-model="form.trainParams.RegParam"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="ElasticNetParam" v-model="showElasticNetParam" v-if="judgeAlgorithmType() === 1">
|
|
|
- <el-input v-model="form.trainParams.ElasticNetParam"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="Category" v-model="showCategory" v-if="judgeAlgorithmType() === 3">
|
|
|
- <el-input v-model="form.trainParams.Category"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="DataSetOccupy" v-model="showTrainingDataSetOccupy" v-if="judgeAlgorithmType() === 3">
|
|
|
- <el-input v-model="form.trainParams.TrainingDataSetOccupy"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="NumOfCluster" v-model="showNumOfCluster" v-if="judgeAlgorithmType() === 2">
|
|
|
- <el-input v-model="form.trainParams.NumOfCluster"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="Seed" v-model="showSeed" v-if="judgeAlgorithmType() === 2">
|
|
|
- <el-input v-model="form.trainParams.Seed"></el-input>
|
|
|
- </el-form-item>
|
|
|
+ <div v-for="(item,index) in form.machineLearningAlgorithm.trainParamEnums" :key="index">
|
|
|
+ <el-tooltip :content="item.description" >
|
|
|
+ <el-form-item :label="item.paramName" >
|
|
|
+ <el-input v-model="form.trainParams[index]" ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
@@ -112,16 +100,11 @@
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
-
|
|
|
<!-- <div class="pagination">-->
|
|
|
<!-- <el-pagination background layout="total, prev, pager, next" :current-page="query.pageIndex"-->
|
|
|
<!-- :page-size="query.pageSize" :total="pageTotal" @current-change="handlePageChange"></el-pagination>-->
|
|
|
<!-- </div>-->
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
</div>
|
|
|
|
|
|
|
|
|
@@ -150,17 +133,6 @@ export default {
|
|
|
pageSize: 10,
|
|
|
});
|
|
|
const fileId=ref(1);
|
|
|
- //new TODO
|
|
|
- //TODO
|
|
|
- const fieldNameList=[]; //字段名
|
|
|
- const aliasList=[]; //别名
|
|
|
- const descList=[]; //描述
|
|
|
- const aList=[]; //取值类型
|
|
|
- const bList=[]; //分布类型
|
|
|
- const cList=[]; //空值率
|
|
|
- const dList=[];
|
|
|
-
|
|
|
-
|
|
|
const tableData = ref([]);
|
|
|
const selectData = ref([]);
|
|
|
const pageTotal = ref(0);
|
|
|
@@ -175,56 +147,52 @@ export default {
|
|
|
const showNumOfCluster=ref(false);
|
|
|
const showSeed=ref(false);
|
|
|
|
|
|
- // let form = reactive({
|
|
|
- // modelTypeId:"",
|
|
|
- // configId:route.query.configId,
|
|
|
- // fileInfoId:"",
|
|
|
- // modelName:"",
|
|
|
- // MaxIter:"",
|
|
|
- // RegParam:"",
|
|
|
- // ElasticNetParam:"",
|
|
|
- // Category:"",
|
|
|
- // TrainingDataSetOccupy:"",
|
|
|
- // NumOfCluster:"",
|
|
|
- // Seed:"",
|
|
|
- // });
|
|
|
+ let enumList = ref([])
|
|
|
+
|
|
|
let form = reactive({
|
|
|
configId: route.query.configId,
|
|
|
modelName: "",
|
|
|
- machineLearningAlgorithm: "",
|
|
|
- trainParams: {},
|
|
|
+ machineLearningAlgorithm: '',
|
|
|
+ trainParams: [],
|
|
|
});
|
|
|
// 获取表格数据
|
|
|
|
|
|
const getData = () => {
|
|
|
- // console.log("queryId",route.query.configId);
|
|
|
if(route.query.configId!=null) {
|
|
|
- getOneConfig({configId:route.query.configId}).then(res => {
|
|
|
- // console.log("configdetail",route.query.configId);
|
|
|
+ const payload ={
|
|
|
+ configId: route.query.configId,
|
|
|
+ userId: 1
|
|
|
+ }
|
|
|
+ getOneConfig(payload).then(res => {
|
|
|
config.value=res.result;
|
|
|
- // form.modelTypeId=config.value.learningType;
|
|
|
- // if (form.modelTypeId==='1') {
|
|
|
- // showMaxIter.value = true;
|
|
|
- // showRegParam.value = true;
|
|
|
- // showElasticNetParam.value = true;
|
|
|
- // }else if (form.modelTypeId==='5') {
|
|
|
- // showNumOfCluster.value=true;
|
|
|
- // showSeed.value=true;
|
|
|
- // }else {
|
|
|
- // showCategory.value=true;
|
|
|
- // showTrainingDataSetOccupy.value=true;
|
|
|
- // }
|
|
|
- // console.log("form",form);
|
|
|
tableData.value = res.result.features;
|
|
|
- });
|
|
|
- getModelByConfigId({configId:route.query.configId}).then(res =>{
|
|
|
- modelData.value=res.result.modelVOList;
|
|
|
+ getEnum().then(ress=>{
|
|
|
+ if (res.result.learningType === 'SUPERVISED_LEARNING'){
|
|
|
+ const tempArr = ress.result[0]
|
|
|
+ for (let j =0; j<tempArr.machineLearningAlgorithmTypeEnum.length;j++){
|
|
|
+ for (let k =0; k<tempArr.machineLearningAlgorithmTypeEnum[j].machineLearningAlgorithmEnums.length;k++){
|
|
|
+ enumList.value.push(tempArr.machineLearningAlgorithmTypeEnum[j].machineLearningAlgorithmEnums[k])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ const tempArr = ress.result[1]
|
|
|
+ for (let j =0; j<tempArr.machineLearningAlgorithmTypeEnum.length;j++){
|
|
|
+ for (let k =0; k<tempArr.machineLearningAlgorithmTypeEnum[j].machineLearningAlgorithmEnums.length;k++){
|
|
|
+ enumList.value.push(tempArr.machineLearningAlgorithmTypeEnum[j].machineLearningAlgorithmEnums[k])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ const payloadModel={
|
|
|
+ configId:route.query.configId,
|
|
|
+ userId: 1
|
|
|
+ }
|
|
|
+ getModelByConfigId(payloadModel).then(res =>{
|
|
|
+ modelData.value=res.result;
|
|
|
})
|
|
|
- // getEnum().then(res=>{
|
|
|
- // console.log("enum: "+res)
|
|
|
- // })
|
|
|
}
|
|
|
-
|
|
|
};
|
|
|
getData();
|
|
|
|
|
|
@@ -256,29 +224,31 @@ export default {
|
|
|
configId:form.configId,
|
|
|
userId: 1,
|
|
|
modelName:form.modelName,
|
|
|
- machineLearningAlgorithm: form.machineLearningAlgorithm,
|
|
|
+ machineLearningAlgorithm: form.machineLearningAlgorithm.self,
|
|
|
trainParams:{}
|
|
|
}
|
|
|
- const arg1={
|
|
|
- MaxIter:form.trainParams.MaxIter,
|
|
|
- RegParam:form.trainParams.RegParam,
|
|
|
- ElasticNetParam:form.trainParams.ElasticNetParam
|
|
|
- }
|
|
|
- const arg3={
|
|
|
- Category:form.trainParams.Category,
|
|
|
- TrainingDataSetOccupy:form.trainParams.TrainingDataSetOccupy
|
|
|
- }
|
|
|
- const arg4={
|
|
|
- NumOfCluster:form.trainParams.NumOfCluster,
|
|
|
- Seed:form.trainParams.Seed
|
|
|
+ console.log(form.trainParams)
|
|
|
+ let key_arr=[]
|
|
|
+ let l = form.machineLearningAlgorithm.trainParamEnums.length
|
|
|
+ for (let i = 0;i<l;i++){
|
|
|
+ key_arr.push(form.machineLearningAlgorithm.trainParamEnums[i].self)
|
|
|
}
|
|
|
- if (judgeAlgorithmType() === 1){
|
|
|
- payload.trainParams=arg1;
|
|
|
- }else if (judgeAlgorithmType() === 5){
|
|
|
- payload.trainParams=arg4;
|
|
|
- }else{
|
|
|
- payload.trainParams=arg3;
|
|
|
+ let param_obj={}
|
|
|
+ // for (let key in form.trainParams) {
|
|
|
+ // param_obj[key] = form.trainParams[key];
|
|
|
+ // }
|
|
|
+ // let j=0
|
|
|
+ // for (let i of param_obj) {
|
|
|
+ // i = key_arr[j]
|
|
|
+ // j++
|
|
|
+ // }
|
|
|
+ for (let i=0;i<l;i++){
|
|
|
+ let temp = key_arr[i]
|
|
|
+ param_obj[temp]=form.trainParams[i]
|
|
|
}
|
|
|
+ payload.trainParams = param_obj
|
|
|
+ console.log(payload)
|
|
|
+
|
|
|
addModel(payload).then(res=>{
|
|
|
console.log(res)
|
|
|
if(res.msg === '成功') {
|
|
|
@@ -317,6 +287,7 @@ export default {
|
|
|
form,
|
|
|
fileId,
|
|
|
showMaxIter,
|
|
|
+ enumList,
|
|
|
saveModel,
|
|
|
|
|
|
showRegParam,
|
|
|
@@ -333,8 +304,6 @@ export default {
|
|
|
handlePageChange,
|
|
|
createModel,
|
|
|
handleEdit,
|
|
|
-
|
|
|
-
|
|
|
};
|
|
|
},
|
|
|
};
|