Forráskód Böngészése

update:自动化特征选择

Yan 4 éve
szülő
commit
587f6be914

+ 1 - 1
src/api/config.js

@@ -385,7 +385,7 @@ export const deleteModelByModelId = configId => {
  */
  */
 export const getFeatureSelection = payload => {
 export const getFeatureSelection = payload => {
   const { fileId,fieldName } = payload;
   const { fileId,fieldName } = payload;
-  return axios.get(`${CONFIG_MODULE}/get/features/${fileId}?fieldName=${fieldName}`).then(res => {
+  return axios.get(`${CONFIG_MODULE}/get/features?fileId=${fileId}&fieldName=${fieldName}`).then(res => {
 
 
     return res.data;
     return res.data;
   });
   });

+ 1 - 3
src/views/ConfigDetail.vue

@@ -29,7 +29,6 @@
             </el-form-item>
             </el-form-item>
             <el-form-item label="特征字段:" >
             <el-form-item label="特征字段:" >
               <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 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>
@@ -57,7 +56,6 @@
 
 
             <el-form-item label="模型列表:" >
             <el-form-item label="模型列表:" >
             <el-table :data="modelData" border class="table" ref="fieldTable" header-cell-class-name="table-header" @selection-change="handleSelectChange">
             <el-table :data="modelData" 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 label="模型名">
               <el-table-column label="模型名">
                 <template #default="scope"><span>{{ scope.row.modelName }}</span></template>
                 <template #default="scope"><span>{{ scope.row.modelName }}</span></template>
               </el-table-column>
               </el-table-column>
@@ -70,7 +68,7 @@
               <el-table-column label="操作" width="180" align="center">
               <el-table-column label="操作" width="180" align="center">
                 <template #default="scope">
                 <template #default="scope">
 
 
-                  <router-link :to="{path:'/ConfigDetail',query:{configId:scope.row.configId}}">
+                  <router-link :to="{path:'/ModelDetail',query:{modelId:scope.row.id}}">
                     <el-button type="text" icon="el-icon-edit" >查看模型
                     <el-button type="text" icon="el-icon-edit" >查看模型
                     </el-button>
                     </el-button>
                   </router-link>
                   </router-link>

+ 1 - 2
src/views/ConfigList.vue

@@ -10,7 +10,7 @@
 
 
         <div class="container">
         <div class="container">
             <div class="handle-box">
             <div class="handle-box">
-                <el-select v-model="query.file" placeholder="模型类别" class="handle-select mr10">
+                <el-select v-model="query.file" placeholder="模型类别" class="handle-select mr10" >
                     <el-option key="0" label="所有" value="0"></el-option>
                     <el-option key="0" label="所有" value="0"></el-option>
                     <el-option key="1" label="逻辑回归" value="1"></el-option>
                     <el-option key="1" label="逻辑回归" value="1"></el-option>
                     <el-option key="2" label="决策树" value="2"></el-option>
                     <el-option key="2" label="决策树" value="2"></el-option>
@@ -36,7 +36,6 @@
                 @selection-change="handleSelectionChange"
                 @selection-change="handleSelectionChange"
                 @row-dblclick="getConfigDetail"
                 @row-dblclick="getConfigDetail"
             >
             >
-                <el-table-column width="50" type="selection"></el-table-column>
                 <el-table-column prop="confName" label="配置名"></el-table-column>
                 <el-table-column prop="confName" label="配置名"></el-table-column>
                 <el-table-column label="模型类别">
                 <el-table-column label="模型类别">
                     <template #default="scope">{{ scope.row.modelTypeName }}</template>
                     <template #default="scope">{{ scope.row.modelTypeName }}</template>

+ 31 - 8
src/views/file/FileDetail.vue

@@ -13,8 +13,10 @@
         <el-button type="primary" plain icon="el-icon-lx-file" >选择文件</el-button>
         <el-button type="primary" plain icon="el-icon-lx-file" >选择文件</el-button>
         </router-link>
         </router-link>
         <el-button type="primary" icon="el-icon-thumb" @click="handleAnalysis">数理分析</el-button>
         <el-button type="primary" icon="el-icon-thumb" @click="handleAnalysis">数理分析</el-button>
+
         <el-button type="primary" icon="el-icon-thumb" @click="createConfig">生成配置文件</el-button>
         <el-button type="primary" icon="el-icon-thumb" @click="createConfig">生成配置文件</el-button>
 
 
+        <el-button type="primary" icon="el-icon-thumb" @click="getFeature">自动特征选择</el-button>
 
 
       </div>
       </div>
 
 
@@ -49,7 +51,7 @@
       </div>
       </div>
     </div>
     </div>
 
 
-    <el-dialog title="选择字段" v-model="analysisVisible" width="30%">
+    <el-dialog title="选择字段" v-model="analysisVisible" width="50%">
       <el-form label-width="120px">
       <el-form label-width="120px">
         <el-form-item label="分析方法" required>
         <el-form-item label="分析方法" required>
           <el-select v-model="form.type" placeholder="分析方法" class="handle-select mr10" >
           <el-select v-model="form.type" placeholder="分析方法" class="handle-select mr10" >
@@ -116,7 +118,7 @@
           <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-form-item label="模型类别" required>
-          <el-select v-model="form.type" placeholder="模型类别" class="handle-select mr10" >
+          <el-select v-model="form.type" placeholder="模型类别" class="handle-select mr10" @change="selectModelTypeChange">
             <el-option key="0" label="所有" value="0"></el-option>
             <el-option key="0" label="所有" value="0"></el-option>
             <el-option key="1" label="逻辑回归" value="1"></el-option>
             <el-option key="1" label="逻辑回归" value="1"></el-option>
             <el-option key="2" label="决策树" value="2"></el-option>
             <el-option key="2" label="决策树" value="2"></el-option>
@@ -128,10 +130,10 @@
             <el-option key="8" label="K-均值" value="8"></el-option>
             <el-option key="8" label="K-均值" value="8"></el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="已选择字段" required>
-          <el-alert type="info" description="您下列选择的最后一个字段为分类模型的目标字段"
+        <el-form-item label="已选择字段" >
+          <el-alert type="info" description="您下列选择的最后一个字段为分类模型的目标字段" v-if="featureTip===1"
                     show-icon style="height: 40px;"></el-alert>
                     show-icon style="height: 40px;"></el-alert>
-          <el-alert type="info" description="k-means模型没有目标字段"
+          <el-alert type="info" description="k-means模型没有目标字段" v-if="featureTip===2"
                     show-icon style="height: 40px;"></el-alert>
                     show-icon style="height: 40px;"></el-alert>
           <el-table :data="selectData" border class="table"  header-cell-class-name="table-header" >
           <el-table :data="selectData" border class="table"  header-cell-class-name="table-header" >
             <el-table-column label="字段名">
             <el-table-column label="字段名">
@@ -159,7 +161,7 @@ import {getFileDetail,analysisFile} from "../../api/file";
 import {useRoute}from "vue-router";
 import {useRoute}from "vue-router";
 import {useRouter}from "vue-router";
 import {useRouter}from "vue-router";
 import { toRaw } from '@vue/reactivity'
 import { toRaw } from '@vue/reactivity'
-import {addConfig} from "../../api/config";
+import {addConfig,getFeatureSelection} from "../../api/config";
 
 
 export default {
 export default {
   name: "config",
   name: "config",
@@ -212,7 +214,21 @@ export default {
 
 
     };
     };
     getData();
     getData();
+    const getFeature=()=>{
+      if(selectData.value.length===0){ElMessage.error("请先选择目标字段");return;}
+      if(selectData.value.length>1){ElMessage.error("目标字段仅可选择一个");return;}
+      getFeatureSelection({"fileId":fileId,"fieldName":selectData.value[0].fieldName}).then(
+          res=>{
+            console.log(res)
+            res=res.data
+            for(let i=0;i<res.length;i++){
+              selectData.value.unshift(res[i])
+            }
+            createConfig()
+          }
 
 
+      )
+    }
     // 查询操作
     // 查询操作
     const handleSearch = () => {
     const handleSearch = () => {
       query.pageIndex = 1;
       query.pageIndex = 1;
@@ -327,8 +343,12 @@ export default {
 
 
     };
     };
     let resultVisible= ref(false);
     let resultVisible= ref(false);
-
-
+  let featureTip=ref(0);
+    const selectModelTypeChange=(selectValue)=>{
+      if(selectValue==="8")featureTip.value=2;
+      else featureTip.value=1;
+      console.log(featureTip.value)
+    }
     const configCreate = ref(false);
     const configCreate = ref(false);
     const createConfig =() => {
     const createConfig =() => {
       const fieldTable = ref(null)
       const fieldTable = ref(null)
@@ -366,8 +386,11 @@ export default {
       configCreate,
       configCreate,
       createConfig,
       createConfig,
       saveConfig,
       saveConfig,
+      getFeature,
       selectData,
       selectData,
       analysisData,
       analysisData,
+      featureTip,
+      selectModelTypeChange,
       handleSelectChange,
       handleSelectChange,
       handleSearch,
       handleSearch,
       handlePageChange,
       handlePageChange,