关注
第一题,信息增益代码 #include <bits/stdc++.h>
#include <map>
#include <math.h>
using namespace std;
typedef struct data{
int clas[2];
}data;
int n;
map<int,data> mp;
int classify[2] = {0};
double cpt_entroy(int m[]){
int nu = m[0] + m[1];
double first = 0;
double second = 0;
if(m[0] != 0){
double tmp = 1.0 * m[0] / nu;
first = -1 * tmp * log(tmp) / log(2);
}
if(m[1] != 0){
double tmp = 1.0 * m[1] / nu;
second = -1 * tmp * log(tmp) / log(2);
}
double entroy = 1.0 * nu / n * (first + second);
return entroy;
}
int main() {
int a, b;
char indep;
cin >> n;
for(int i=0; i<n; ++i){
cin>>a>>indep>>b;
classify[b]++;
if(mp.find(a) == mp.end())
mp[a].clas[b] = 0;
mp[a].clas[b] += 1;
}
double gain_all = cpt_entroy(classify);
double ans = gain_all;
map<int, data>::iterator it;
for(it = mp.begin(); it != mp.end(); ++it) {
double pro = cpt_entroy(it->second.clas);
ans -= pro;
}
int dans = (ans + 0.005) * 100;
double res = double(dans) / 100;
printf("%.2f\n",res);
return 0;
}
查看原帖
点赞 2
相关推荐
投递长鑫存储等公司10个岗位 >
点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
240572次浏览 2050人参与
# 实习,投递多份简历没人回复怎么办 #
2447337次浏览 34795人参与
# 北方华创开奖 #
67950次浏览 558人参与
# 25届秋招总结 #
424830次浏览 4292人参与
# 虾皮求职进展汇总 #
100380次浏览 809人参与
# 地方国企笔面经互助 #
7362次浏览 18人参与
# 阿里云管培生offer #
65328次浏览 1766人参与
# ai智能作图 #
35313次浏览 434人参与
# 中兴求职进展汇总 #
470969次浏览 2453人参与
# 我在牛爱网找对象 #
75228次浏览 556人参与
# 双非有机会进大厂吗 #
106143次浏览 1333人参与
# 实习想申请秋招offer,能不能argue薪资 #
37949次浏览 313人参与
# 机械求职避坑tips #
24197次浏览 252人参与
# 发工资后,你做的第一件事是什么 #
10536次浏览 52人参与
# 25届机械人为了秋招做了哪些准备? #
26796次浏览 366人参与
# 投格力的你,拿到offer了吗? #
47862次浏览 337人参与
# 我的实习求职记录 #
6144070次浏览 84084人参与
# 投递实习岗位前的准备 #
1193577次浏览 18510人参与
# 机械人怎么评价今年的华为 #
158438次浏览 1354人参与
# 在职场上,你最讨厌什么样的同事 #
6474次浏览 96人参与
# 实习与准备秋招该如何平衡 #
725904次浏览 8568人参与
# 华为工作体验 #
112463次浏览 871人参与