|
@@ -20,7 +20,7 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<el-table :data="tableData" border class="table" ref="fieldTable" header-cell-class-name="table-header" @selection-change="handleSelectChange">
|
|
<el-table :data="tableData" border class="table" ref="fieldTable" header-cell-class-name="table-header" @selection-change="handleSelectChange">
|
|
|
- <el-table-column width="50" type="selection" ></el-table-column>
|
|
|
|
|
|
|
+ <el-table-column width="50" type="selection"></el-table-column>
|
|
|
<el-table-column label="字段名">
|
|
<el-table-column label="字段名">
|
|
|
<template #default="scope"><span>{{ scope.row.fieldName }}</span></template>
|
|
<template #default="scope"><span>{{ scope.row.fieldName }}</span></template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -118,29 +118,48 @@
|
|
|
<el-form-item label="配置名" required>
|
|
<el-form-item label="配置名" required>
|
|
|
<el-input v-model="form.name"></el-input>
|
|
<el-input v-model="form.name"></el-input>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+<!-- <el-form-item label="模型类别" required>-->
|
|
|
|
|
+<!-- <el-select v-model="form.type" placeholder="模型类别" class="handle-select mr10" @change="selectModelTypeChange">-->
|
|
|
|
|
+<!-- <el-option key="1" label="逻辑回归" value="1"></el-option>-->
|
|
|
|
|
+<!-- <el-option key="2" label="决策树" value="2"></el-option>-->
|
|
|
|
|
+<!-- <el-option key="3" label="随机森林" value="3"></el-option>-->
|
|
|
|
|
+<!-- <el-option key="4" label="梯度提升决策树" value="4"></el-option>-->
|
|
|
|
|
+<!-- <el-option key="5" label="K-均值" value="5"></el-option>-->
|
|
|
|
|
+<!-- <el-option key="6" label="多层感知器分类器" value="6"></el-option>-->
|
|
|
|
|
+<!-- <el-option key="7" label="朴素贝叶斯" value="7"></el-option>-->
|
|
|
|
|
+<!-- <el-option key="8" label="随机森林回归" value="8"></el-option>-->
|
|
|
|
|
+<!-- </el-select>-->
|
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
<el-form-item label="模型类别" required>
|
|
<el-form-item label="模型类别" required>
|
|
|
- <el-select v-model="form.type" placeholder="模型类别" class="handle-select mr10" @change="selectModelTypeChange">
|
|
|
|
|
- <el-option key="1" label="逻辑回归" value="1"></el-option>
|
|
|
|
|
- <el-option key="2" label="决策树" value="2"></el-option>
|
|
|
|
|
- <el-option key="3" label="随机森林" value="3"></el-option>
|
|
|
|
|
- <el-option key="4" label="梯度提升决策树" value="4"></el-option>
|
|
|
|
|
- <el-option key="5" label="K-均值" value="5"></el-option>
|
|
|
|
|
- <el-option key="6" label="多层感知器分类器" value="6"></el-option>
|
|
|
|
|
- <el-option key="7" label="朴素贝叶斯" value="7"></el-option>
|
|
|
|
|
- <el-option key="8" label="随机森林回归" value="8"></el-option>
|
|
|
|
|
|
|
+ <el-select v-model="form.type" placeholder="学习类型" class="handle-select mr10" >
|
|
|
|
|
+ <el-option key="1" label="监督学习" value="SUPERVISED_LEARNING"></el-option>
|
|
|
|
|
+ <el-option key="2" label="非监督学习" value="UNSUPERVISED_LEARNING"></el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="已选择字段" >
|
|
|
|
|
- <el-alert type="info" description="您下列选择的最后一个字段为分类模型的目标字段" v-if="featureTip===1"
|
|
|
|
|
- show-icon style="height: 40px;"></el-alert>
|
|
|
|
|
- <el-alert type="info" description="k-means模型没有目标字段" v-if="featureTip===2"
|
|
|
|
|
- show-icon style="height: 40px;"></el-alert>
|
|
|
|
|
- <el-table :data="selectData" border class="table" header-cell-class-name="table-header" >
|
|
|
|
|
|
|
+ <el-form-item label="标签字段" required>
|
|
|
|
|
+ <el-select v-model="form.needLabel" placeholder="是否需要" class="handle-select mr10" @change="selectLabelChange">
|
|
|
|
|
+ <el-option key="1" label="是" value='1'></el-option>
|
|
|
|
|
+ <el-option key="2" label="否" value='2'></el-option>
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ <el-alert type="info" description="选择的最后一个字段为标签字段" v-if="labelTip===1"
|
|
|
|
|
+ show-icon style="height: 40px; margin-top: 10px"></el-alert>
|
|
|
|
|
+ <el-alert type="info" description="没有目标字段,适用于k-means模型" v-if="labelTip===2"
|
|
|
|
|
+ show-icon style="height: 40px; margin-top: 10px"></el-alert>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="选中字段" >
|
|
|
|
|
+ <el-table :data="selectData" border class="table" header-cell-class-name="table-header" >
|
|
|
<el-table-column label="字段名">
|
|
<el-table-column label="字段名">
|
|
|
<template #default="scope"><span>{{ scope.row.fieldName }}</span></template>
|
|
<template #default="scope"><span>{{ scope.row.fieldName }}</span></template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+<!-- <el-form-item label="标签字段" v-if="labelTip===1">-->
|
|
|
|
|
+<!-- <el-table :data="selectData" border class="table" header-cell-class-name="table-header">-->
|
|
|
|
|
+<!-- <el-table-column label="字段名">-->
|
|
|
|
|
+<!-- <template #default="scope"><span>{{ scope.row.fieldName }}</span></template>-->
|
|
|
|
|
+<!-- </el-table-column>-->
|
|
|
|
|
+<!-- </el-table>-->
|
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
|
|
|
|
</el-form>
|
|
</el-form>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
@@ -219,7 +238,12 @@ export default {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
};
|
|
};
|
|
|
- getData();
|
|
|
|
|
|
|
+ //getData();
|
|
|
|
|
+ tableData.value = [
|
|
|
|
|
+ {id:1, fileInfoId: 1, fieldName: '编号', conOrDis: '连续值',fieldType: 'int'},
|
|
|
|
|
+ {id:2, fileInfoId: 1, fieldName: '色泽', conOrDis: '连续值',fieldType: 'string'},
|
|
|
|
|
+ {id:3, fileInfoId: 1, fieldName: '纹理', conOrDis: '连续值',fieldType: 'string'}]
|
|
|
|
|
+
|
|
|
const getFeature=()=>{
|
|
const getFeature=()=>{
|
|
|
if(selectData.value.length===0){ElMessage.error("请先选择目标字段");return;}
|
|
if(selectData.value.length===0){ElMessage.error("请先选择目标字段");return;}
|
|
|
if(selectData.value.length>1){ElMessage.error("目标字段仅可选择一个");return;}
|
|
if(selectData.value.length>1){ElMessage.error("目标字段仅可选择一个");return;}
|
|
@@ -265,6 +289,7 @@ export default {
|
|
|
let form = reactive({
|
|
let form = reactive({
|
|
|
name: "",
|
|
name: "",
|
|
|
type: "",
|
|
type: "",
|
|
|
|
|
+ needLabel: "",
|
|
|
// classification:"",
|
|
// classification:"",
|
|
|
// feature:"",
|
|
// feature:"",
|
|
|
});
|
|
});
|
|
@@ -354,19 +379,21 @@ export default {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- // ElMessage.success(`修改第 ${idx + 1} 行成功`);
|
|
|
|
|
- // Object.keys(form).forEach((item) => {
|
|
|
|
|
- // tableData.value[idx][item] = form[item];
|
|
|
|
|
- // });
|
|
|
|
|
-
|
|
|
|
|
};
|
|
};
|
|
|
let resultVisible= ref(false);
|
|
let resultVisible= ref(false);
|
|
|
- let featureTip=ref(0);
|
|
|
|
|
|
|
+ let featureTip=ref(0);
|
|
|
|
|
+ let labelTip = ref(0);
|
|
|
|
|
+
|
|
|
const selectModelTypeChange=(selectValue)=>{
|
|
const selectModelTypeChange=(selectValue)=>{
|
|
|
if(selectValue==="8")featureTip.value=2;
|
|
if(selectValue==="8")featureTip.value=2;
|
|
|
else featureTip.value=1;
|
|
else featureTip.value=1;
|
|
|
console.log(featureTip.value)
|
|
console.log(featureTip.value)
|
|
|
}
|
|
}
|
|
|
|
|
+ const selectLabelChange=(selectValue)=>{
|
|
|
|
|
+ if(selectValue==="1") labelTip.value=1;
|
|
|
|
|
+ else labelTip.value=2;
|
|
|
|
|
+ console.log(labelTip.value)
|
|
|
|
|
+ }
|
|
|
const configCreate = ref(false);
|
|
const configCreate = ref(false);
|
|
|
const createConfig =() => {
|
|
const createConfig =() => {
|
|
|
if (selectData.value.length<=1){
|
|
if (selectData.value.length<=1){
|
|
@@ -374,27 +401,40 @@ export default {
|
|
|
return ;
|
|
return ;
|
|
|
}
|
|
}
|
|
|
const fieldTable = ref(null)
|
|
const fieldTable = ref(null)
|
|
|
- //console.log(fieldTable)
|
|
|
|
|
- console.log(selectData.value)
|
|
|
|
|
configCreate.value = true;
|
|
configCreate.value = true;
|
|
|
};
|
|
};
|
|
|
const saveConfig=()=>{
|
|
const saveConfig=()=>{
|
|
|
const route=useRoute()
|
|
const route=useRoute()
|
|
|
- const payload={fileInfoId:selectData.value[0].fileInfoId,userId:1, modelTypeId:form.type, confName:form.name , fieldIds:[]}
|
|
|
|
|
- for(let i=0;i<selectData.value.length;i++){
|
|
|
|
|
- payload.fieldIds.push(selectData.value[i].id);
|
|
|
|
|
|
|
+ const payload={
|
|
|
|
|
+ fileInfoId:selectData.value[0].fileInfoId,
|
|
|
|
|
+ userId:1,
|
|
|
|
|
+ learningType:form.type,
|
|
|
|
|
+ configName:form.name,
|
|
|
|
|
+ features:[],
|
|
|
|
|
+ label: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ if (form.needLabel === '2'){
|
|
|
|
|
+ for(let i=0;i<selectData.value.length;i++){
|
|
|
|
|
+ payload.features.push(selectData.value[i].fieldName);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ else{
|
|
|
|
|
+ for(let i=0;i<selectData.value.length-1;i++){
|
|
|
|
|
+ payload.features.push(selectData.value[i].fieldName);
|
|
|
|
|
+ }
|
|
|
|
|
+ payload.label = selectData.value[selectData.value.length-1].fieldName
|
|
|
}
|
|
}
|
|
|
addConfig(payload).then(res=>{
|
|
addConfig(payload).then(res=>{
|
|
|
- if(res.status===200) {
|
|
|
|
|
|
|
+ if(res.msg === '成功') {
|
|
|
ElMessage.success(`已成功生成配置`);
|
|
ElMessage.success(`已成功生成配置`);
|
|
|
configCreate.value = false;
|
|
configCreate.value = false;
|
|
|
}
|
|
}
|
|
|
else ElMessage.error(`生成配置失败`);
|
|
else ElMessage.error(`生成配置失败`);
|
|
|
})
|
|
})
|
|
|
- console.log(payload)
|
|
|
|
|
}
|
|
}
|
|
|
const handleSelectChange=val=>{
|
|
const handleSelectChange=val=>{
|
|
|
selectData.value=val;
|
|
selectData.value=val;
|
|
|
|
|
+ console.log('selectData:'+JSON.stringify(selectData))
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
@@ -412,8 +452,10 @@ export default {
|
|
|
selectData,
|
|
selectData,
|
|
|
analysisData,
|
|
analysisData,
|
|
|
featureTip,
|
|
featureTip,
|
|
|
|
|
+ labelTip,
|
|
|
methodMsg,
|
|
methodMsg,
|
|
|
selectModelTypeChange,
|
|
selectModelTypeChange,
|
|
|
|
|
+ selectLabelChange,
|
|
|
handleSelectChange,
|
|
handleSelectChange,
|
|
|
handleSearch,
|
|
handleSearch,
|
|
|
handlePageChange,
|
|
handlePageChange,
|