Python之算法评估-4
一、评估算法的方式分两种,一种是分类算法的评估,一种是回归算法的评估。为什么要分两种呢,因为分类算法中可以通过准确率、精准率、召回率、混淆矩阵、AUC来评估算法的准确度。但是在预测值的时候是没有办法去获得这个准确值(比如分类对了,那就对了,错了就是错了,可以通过对错来统计准确率),那么回归算法的方式,就通过均方误差来确认算法的准确度。
二、分类算法的评估(以K-近邻算法来说)
knn = KNeighborsClassifier(n_neighbors=5) knn.fit(x_train, y_train) y_predict = knn.predict(x_test) print("预测值:", y_predict) # 5、评估 # 评估 score = knn.score(x_test, y_test) print("准确率:", score)
说明:可以通过predict()函数来预测结果
source()来出来预测准确率(理解为真实预测数据/所有数据)
其中还有其他的值的算法过程,和进准率差不多。
数据: 预测值 0 预测值 1 真实值 0 TN FP 真实值 1 FN TP 精准率(precision): TP precision = —————— TP + FP 召回率(recall): TP recall = ——————— TP + FN 模型的稳定性: 2TP 2precision * recall F1 = ————————————— = ——————————————————— 2TP + FN + FP precision + recall
三、均方误差
from sklearn.metrics import mean_squared_error def mean_squared_error(y_true, y_pred, sample_weight=None, multioutput='uniform_average'): ...
主要参数,y_true,y_pred:真实值,预测值
公式:
1 m _ MSE = ——— ∑(yi - y)^2 m i=1 _ yi:预测值 y:真实值 一定要标准化之前的值
四、统一说明:在分类算法中准确率只是其中的一项,以越接近100%,越准确。回归算法中以MSE(均方误差值越小,越准确)