笔试面试 2020 年是特殊的一年,我们既要打贏疫情防控战,又要应对和化解外部环境带来的风险挑战,还要确保“十三五”顺利收官、如期实现全面建成小康社会目标。在这种情况下,2020年,我国国内生产总值同比增长2.3%,弥足珍贵。最能概括这段文字主旨的是()。
笔试面试 在某次商品促销活动中,根据用户偏好相关的特征训练了一个机器学习模型,现需要对该模型进行离线评估。该模型是二分类模型,可以获取到模型在某个用户下对于商品的打分和真实的样本标签,由于样本量较大,因此模型对于不同的用户下的商品打分可能存在分值相同的情况。使用 ROC 曲线下的面积(Area Under Curve)进行模型评估,因此需要计算通用模型 AUC。AUC 通常用来表示随机选出一对正负样本,分类器对于正样本的打分大于负样本打分的概率,假设一个数据集中有 M 个正样本, N 个负样本,将所有的样本按照预测值从小到大排序,也就是: 其中 rank 代表正样本在排序中的索引加一,如果排序以后某一正样本对应的索引为 1,则 rank 值为 2。如果某一机器学习给出的预测分数经过排序后为 [0.3, 0.4, 0.5, 0.6],此时对应的 rank 变为 [1, 2, 3, 4],只需要把相应正样本抽取然后根据公式计算即可。如果模型给出的预测值中存在数值一样的情况,那么排序的过程中,需要对一样的数值进行平均化处理,如果单纯只考虑预测数值不出现重复的情况,那么这种 AUC 计算的应用场景是非常局限的。如果某一机器学习模型给出的预测分数经过排序后为 [0.3, 0.4, 0.5, 0.5, 0.5, 0.5, 0.6],此时对应的 rank 变为 [1, 2, 4.5, 4.5, 4.5, 4.5, 7],其中 (3+4+5+6)/4 = 4.5。 请根据题目描述和输入、输出、补充说明的信息,完成通用 AUC 的计算。
笔试面试 存在中缀表达式:(2*(3-4))*5,通过下面的代码将其转换为后缀表达式,则当扫描到字符4时,栈ops中所存元素为() /** * 将中缀表达式转换为后缀表达式 * @param s 中缀表达式 * @return String字符串 后缀表达式 */ private String postfix(String s){ // 后缀表达式 StringBuilder sb = new StringBuilder(); Stack<Character> ops = new Stack<>(); int i = 0; while(i < s.length()){ char c = s.charAt(i++); if (c == ‘(‘ || c == ‘+’ || c == ‘-‘ || c == ‘*’){ // 加一个空格是为了将操作数之间隔开 sb.append(” “); pushOP(sb,c,ops); continue; } if (c == ‘)’){ // 弹出操作符直到( while(ops.peek() != ‘(‘){ sb.append(ops.pop()); } ops.pop(); continue; } sb.append(c); } // 弹出栈中元素 while(!ops.isEmpty()){ sb.append(ops.pop()); } return sb.toString(); } private void pushOP(StringBuilder sb,char op,Stack<Character> ops){ // 栈空,或者栈顶元素为(,操作符直接放入栈中 if (ops.isEmpty() || ops.peek() == ‘(‘ || op == ‘(‘){ ops.add(op); return; } char c = ops.peek(); // 栈顶操作符的优先级低于当前操作符,直接压入栈中 if (c != ‘*’ && op == ‘*’){ ops.add(op); return; } // 否则,弹出栈顶元素,继续比较 c = ops.pop(); sb.append(c); pushOP(sb,op,ops); }