幾種常見的測評函式python實現

2021-09-30 19:22:19 字數 2283 閱讀 8136

version:python 3.6

環境:anaconda/jupyterlab 0.27.0

作業系統:windows 10

機器學習過程中,對模型表徵能力的測評是非常重要的一環。不同模型要求實現的目的不同,各個測評函式應視實際情況選擇使用,下面列舉一些筆者碰到的測評函式。後續將不斷地完善。

python的語言真的數學工具中的大殺器,python**的思維和數學語言的邏輯思維是一樣的。個人感覺能夠寫出數學表示式的**,就對該表示式理解了一大半。

1.基於mse係數(平均平方誤差)的測評:

m se

=1n∑

i=1n

∣pre

di−y

i∣2s

core

=11+

ms

emse = \frac^|pred_-y_i|^2}\\score = \frac

mse=n1

​i=1

∑n​∣

pred

i​−y

i​∣2

scor

e=1+

mse1

def calculatemse(x,y): 

return 1 / (sum([(x - y)**2 for x,y in zip(x,y)])/len(x)+1)

2.基於ape的測評:ape

i=∣p

redi

−yi∣

max(

∣yi∣

,shr

esho

d)ap

e=1n

∑i=1

n∣pr

edi−

yi∣m

ax(∣

yi∣,

290000

)ape_i = -y_i|}}}\\ape = \frac\displaystyle \sum _^\frac-y_i|}}

apei​=

max(

∣yi​

∣,sh

resh

od)∣

pred

i​−y

i​∣​

ape=

n1​i

=1∑n

​max

(∣yi

​∣,2

9000

0)∣p

redi

​−yi

​∣​其中,n - the total number of turbidity predictions submitted

pred(or y^) - the predicted turbidity value

y - the actual turbidity value

import numpy as np

def performance_metric(x,y):

a = [abs(x - y) for x,y in zip(x,y)]

b = [max(abs(y),290000) for y in y]

#c = [a[i] / b[i] for i in range(len(a))]

return sum(np.array(a) / np.array(b)) / len(x)

def performance_metric(x,y):

a = [abs(x - y) for x,y in zip(x,y)]

print(a)

b = [max(abs(y),5) for y in y]

print(b)

#c = [a[i] / b[i] for i in range(len(a))]

return sum(np.array(a) / np.array(b)) / len(x)

'''def performance_metric(x,y):

a = abs(np.array(x)-np.array(y))

b = max(abs(np.array(y)),5) #錯誤操作,

#max函式不知道是對列表求最大值還是y和5取最大值

#c = [a[i] / b[i] for i in range(len(a))]

return sum(np.array(a) / np.array(b)) / len(x)'''

x = [1,2,3]

y = [4,5,6]

performance_metric(x,y)

from: drivendata比賽_sustainable industry: rinse over run/2019.01.21

python幾種常見語法

no1.type自動匹配型別 name zhangsan age 18 print type name type自動匹配型別 print name s,age d name,age s 代表字元型別 d 代表數字 print hi your nme name your age str age str...

python的幾種函式

1 無參函式 def fun1 print 這個是無參函式 2.位置引數 有參 def fun2 a,b return a b 3.預設引數 def fun3 a,b 2 print a b fun3 1 結果3 fun3 1,4 結果5 4.可變引數 引數值可以是0到任意個,在函式內部,引數num...

python的幾種常見排序方法

簡單交換排序 n int input 請輸入需要排序的資料個數 x for i in range n for i in range n 1 for j in range i 1,n if x i x j x i x j x j x i 每次符合結果的都進行資料交換 print 排序後的資料 x 氣泡...