【发布时间】:2021-07-11 03:41:13
【问题描述】:
这就是问题所在:
您将获得一个列表列表,每个子列表的长度为 2 即 [[x,y],[p,q],[l,m]..[r,s]] 认为它就像一个n行两列矩阵 一种。第一列 Y 将包含整数值 湾。第二列????????????????????????将有浮点值 你的任务是找出 ??????(????,????????????????????????)=−1∗1?? ??Σ????????????????????????ℎ??????,?????????????????? ???????????????????????????(??????????????????10(?????????? ???????????????)+(1−??????)????????????10(1−???????? ???????????????)) 这里n是矩阵中的行数 前任: [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]] 输出: 0.4243099 −18⋅((1⋅????????????10(0.4)+0⋅????????????10(0.6))+(0⋅??? ?????????10(0.5)+1⋅????????????10(0.5))+...+(1⋅????????? ???10(0.8)+0⋅????????????10(0.2)))
我的代码 -
def compute_log_loss(A):
Y = len(A)
Ys = len(A[0])
l = 0
for i in range(Y):
for j in range(Ys):
l += A[i]*math.log10(A[j]) + (1-A[i])*math.log10(1-A[j])
loss=(-1*l)/Y
print(loss)
A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
compute_log_loss(A)```
Im getting the following error :
TypeError Traceback (most recent call last)
<ipython-input-97-bd3b5244f95b> in <module>
17 print(loss)
18 A = [[1, 0.4], [0, 0.5], [0, 0.9], [0, 0.3], [0, 0.6], [1, 0.1], [1, 0.9], [1, 0.8]]
---> 19 compute_log_loss(A)
<ipython-input-97-bd3b5244f95b> in compute_log_loss(A)
13 for i in range(Y):
14 for j in range(Ys):
---> 15 l += A[i]*math.log10(A[j]) + (1-A[i])*math.log10(1-A[j])
16 loss=(-1*l)/Y
17 print(loss)
TypeError: must be real number, not list
【问题讨论】:
-
下次通过在这三个反引号后面指定语言,将其格式化为 Python 代码。 ```蟒蛇```