数字营销实训算法第三轮修改

master
@t2652009480 7 months ago
parent 1c2f9335e2
commit 967fd874ac

@ -429,11 +429,17 @@ public class StuDigitalMarketingModelServiceImpl implements StuDigitalMarketingM
List<Map<String,Object>> attributes = stuTableNameMapper.selectByFields(fieldList,table);
for (int i = 0; i < attributes.size(); i++) {
if(attributes.get(i).size()<fieldList.size()){
Collections.rotate(attributes,-1);
for (int i = 0; i < attributes.size(); i++) {
if(attributes.get(i)!=null){
if(attributes.get(i).size()<fieldList.size()){
Collections.rotate(attributes,-1);
}
}
}
}
@ -482,6 +488,20 @@ public class StuDigitalMarketingModelServiceImpl implements StuDigitalMarketingM
//判断缺失值处理方式
if(method.equals("缺失值处理--剔除数据")){
int a=0;
List<Integer> list=new ArrayList<>();
for (int i = 0; i < deduplicatedDataList.size(); i++) {
a = deduplicatedDataList.get(0).size();
if(deduplicatedDataList.get(i).size()<a){
list.add(i);
}
}
// 反转列表
Collections.reverse(list);
for (int i = 0; i < list.size(); i++) {
deduplicatedDataList.remove(deduplicatedDataList.get(list.get(i)));
}
deduplicatedDataList.removeIf(record -> record.containsValue(null));
@ -503,6 +523,21 @@ public class StuDigitalMarketingModelServiceImpl implements StuDigitalMarketingM
// }
// }
int a=0;
List<Integer> list=new ArrayList<>();
for (int i = 0; i < deduplicatedDataList.size(); i++) {
a = deduplicatedDataList.get(0).size();
if(deduplicatedDataList.get(i).size()<a){
list.add(i);
}
}
// 反转列表
Collections.reverse(list);
for (int i = 0; i < list.size(); i++) {
deduplicatedDataList.remove(deduplicatedDataList.get(list.get(i)));
}
//众数代替
for (Map<String, Object> record : deduplicatedDataList) {
for (Map.Entry<String, Object> entry : record.entrySet()) {

@ -16,6 +16,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.text.DecimalFormat;
import java.util.*;
public class Apriori {
@ -251,12 +252,13 @@ public class Apriori {
if (confident > min_confident) {// 如果事件的置信度大于最小置信度
//封装对象返回
DecimalFormat df = new DecimalFormat("#.0");
AssociationRulesDTO associationRulesDTO=new AssociationRulesDTO();
associationRulesDTO.setCorrelation(item_pre);
associationRulesDTO.setAssociated(item_post);
associationRulesDTO.setConfidenceLevel(confident);
associationRulesDTO.setConfidenceLevel(Double.parseDouble(df.format(confident)));
String string=item_pre + "==>" + item_post+"==>" + confident;
String string=item_pre + "==>" + item_post+"==>" + Double.parseDouble(df.format(confident));
associationRulesDTO.setRule(string);
list.add(associationRulesDTO);

@ -146,7 +146,9 @@ public class KMeansResult {
private static double calculateEuclideanDistance(ArrayList<Float> point1, ArrayList<Float> point2) {
double sum = 0;
for (int i = 1; i < point1.size(); i++) {
sum += Math.pow(point1.get(i) - point2.get(i), 2);
if(i<=point2.size()){
sum += Math.pow(point1.get(i) - point2.get(i), 2);
}
}
return Math.sqrt(sum);
}

Loading…
Cancel
Save