目录:
机器学习常见面试问题汇总
问题汇总(1):逻辑回归
问题汇总(2):支持向量机
问题汇总(3):树模型
问题汇总(4):聚类
问题汇总(5):神经网络
问题汇总(6):EM算法
问题汇总(7):朴素贝叶斯
附auc计算的手动实现:
输入:
10
1 0.90
0 0.70
1 0.60
1 0.55
0 0.52
1 0.40
0 0.38
0 0.35
1 0.31
0 0.10
输出:0.68
import sys
N = int(sys.stdin.readline())
data = []
label = []
for _ in range(N):
a,b = map(float,sys.stdin.readline().strip().split())
data.append(b)
label.append(int(a))
def calAUC(prob,labels):
f = list(zip(prob,labels))
rank = [values2 for values1,values2 in sorted(f,key=lambda x:x[0])]
rankList = [i+1 for i in range(len(rank)) if rank[i]==1]
posNum = 0
negNum = 0
for i in range(len(labels)):
if(labels[i]==1):
posNum+=1
else:
negNum+=1
auc = (sum(rankList)- (posNum*(posNum+1))/2)/(posNum*negNum)
return auc
ans = calAUC(data,label)
print(ans)