回归
- 设 y ^ = f ( x ) \hat y = f(x) y^=f(x),f为模型, y ^ \hat y y^为预测值
SSE
- S S E = ∑ 1 n ( y i − y ^ i ) SSE = \sum_1^n(y_i - \hat y_i) SSE=1∑n(yi−y^i)
MAE
- M A E = ∑ 1 n ∣ y i − y ^ i ∣ n MAE = \frac {\sum_1^n |y_i - \hat y_i|}{n} MAE=n∑1n∣yi−y^i∣
from sklearn.metrics import mean_absolute_error
MSE
- M S E = ∑ 1 n ( y i − y ^ i ) 2 n MSE = \frac {\sum_1^n (y_i - \hat y_i)^2}{n} MSE=n∑1n(yi−y^i)2
from sklearn.metrics import mean_squared_error
RMSE
- R M S E = M S E RMSE = \sqrt{MSE} RMSE=MSE
R-Square
- R 2 = 1 − ∑ ( y ^ i − y i ) 2 ∑ ( y ‾ i − y i ) 2 R^2 = 1 - \frac {\sum (\hat y_i - y_i)^2}{\sum (\overline y_i - y_i)^2} R2=1−∑(yi−yi)2∑(y^i−yi)2其中 y ‾ i \overline y_i yi为预测label的平均值
- 越接近1越好
- 若预测的所有label都是一个值,则r2 = 0
- 当模型非常糟糕时,r2可以为负数
from sklearn.metrics import r2_score
该指标随着样本数量增加会增大,故使用adjusted r2解决该问题
adjusted R-Square
- a d j u s t e d R 2 = 1 − ( 1 − R 2 ) ( n − 1 ) n − p − 1 adjusted\ R^2 = 1 - \frac {(1-R^2)(n-1)}{n-p-1} adjusted R2=1−n−p−1(1−R2)(n−1)其中,n为samples个数,p为features个数
聚类:外部指标
- 外部指标:设已知某个参考模型以及该模型给出的聚类结果,我们认为参考模型给出的结果是最优结果,而我们的聚类模型评估方案就是看聚类出来的结果与参考模型给出的结果的接近程度。
- 设
- a: 同时在模型中隶属于相同cluster,在参考模型中也隶属于相同cluster的样本对个数(二元元组)
- b: 在模型中隶属于相同cluster,在参考模型中不隶属于相同cluster的样本对个数(二元元组)
- c: 在模型中不隶属于相同cluster,在参考模型中隶属于相同cluster的样本对个数(二元元组)
- d: 同时在模型中不隶属于相同cluster,在参考模型中也不隶属于相同cluster的样本对个数(二元元组)
Jaccard系数
- J C = a a + b + c JC = \frac {a}{a+b+c} JC=a+b+ca
from sklearn.metrics import jaccard_score
FM指数
- F M I = a a + b ⋅ a a + c FMI = \sqrt {\frac {a}{a+b} \cdot \frac {a}{a+c}} FMI=a+ba⋅a+ca
from sklearn.metrics import fowlkes_mallows_score
RAND指数
- R I = 2 ( a + b ) n ( n − 1 ) RI = \frac {2(a+b)}{n(n-1)} RI=n(n−1)2(a+b)
# 该API将AI用最大最小规范化
from sklearn.metrics import adjusted_rand_score
聚类:内部指标
- 不依靠参考模型,根据**cluster内部的样本间距(cluster内相似度)和cluster之间的间距(cluster间相似度)**考察聚类效果
- 设
- avg(c):cluster c的平均两点间距
- diam(c):cluster c内的最大两点间距
- dmin(ci, cj):cluster ci and cluster cj之间的最小两点间距
- dmax(ci, cj):ignore
- dcen(ci, cj):cluster ci and cj的质心距
DB指数
- D B I = 1 k ∑ i k m a x j ! = i ( a v g ( c i ) + a v g ( c j ) d c e n ( c i , c j ) ) DBI = \frac{1}{k}\sum_i^kmax_{j != i}(\frac {avg(ci) + avg(cj)}{dcen(ci, cj)}) DBI=k1i∑kmaxj!=i(dcen(ci,cj)avg(ci)+avg(cj))
from sklearn.metrics import davies_bouldin_score
Dunn指数
- D I = m i n 1 < = i < = k ( m i n j ! = i ( d m i n ( c i , c j ) m a x 1 < = x < = k d i a m ( c x ) ) ) DI = min_{1<=i<=k}(min_{j!=i}(\frac {dmin(ci, cj)}{max_{1<=x<=k}diam(cx)})) DI=min1<=i<=k(minj!=i(max1<=x<=kdiam(cx)dmin(ci,cj)))