sklearn笔记11 KNN模型评价指标

完整代码 sklearn代码7 6-KNN癌症诊断(2)

代码依旧使用癌症诊断代码

模型评估:
官网查看
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

import numpy as np

import pandas as pd

from pandas import Series,DataFrame

from sklearn.neighbors import KNeighborsClassifier

from sklearn.model_selection import train_test_split

# grid网格 search搜索 cv:cross_validation
# 搜索算法最合适的参数
from sklearn.model_selection import GridSearchCV

# 导包准确率得分
from sklearn.metrics import accuracy_score

在这里插入图片描述

accuracy_score(y_test,y_)  #准确率得分,与上述计算结果一致

在这里插入图片描述

# 取出来最好的模型,进行预测
# 也是直接使用gcv去预测,结果一样的
knn_best = gcv.best_estimator_

knn_best.predict(X_test)
accuracy_score(y_test,y_)

在这里插入图片描述
交叉表

pd.crosstab(index = y_test,columns=y_,rownames=['True'],colnames=['predict'])   #交叉表

在这里插入图片描述

X_test.shape
pd.crosstab(index = y_test,columns=y_,rownames=['True'],colnames=['predict'],
           margins = True)   #交叉表

在这里插入图片描述
分类指标之一
在这里插入图片描述

from sklearn.metrics import confusion_matrix

confusion_matrix(y_test,y_)

在这里插入图片描述
在这里插入图片描述

from sklearn.metrics import classification_report

print(classification_report(y_test,y_,target_names = ['B','M']))

在这里插入图片描述
分别为精确率,召回率和F-measures,是用来评价模型的指标
在这里插入图片描述
在这里插入图片描述
recall 正样本的概率

# 真实的
y_test.value_counts()
# 预测
Series(y_).value_counts()

在这里插入图片描述

np.round(73/74,2)
np.round(36/40,2)

在这里插入图片描述

presicion准确率

计算公式表
在这里插入图片描述

# presicion
np.round(73/(73+4),2)
np.round(36/37,2)

在这里插入图片描述
f1-score计算方法

np.round((2*0.95*0.99)/(0.95+0.99),2)
np.round((2*0.97*0.9)/(0.97+0.9),2)

在这里插入图片描述
精确率,召回率和f1-score都是越大越好,一般情况下,其中带score的都是越大越好

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KNN(K-Nearest Neighbors)是一种基于实例的学习方法,它是一种无参数的模型,能够处理分类和回归问题。 在Python中,我们可以使用scikit-learn(sklearn)库来实现KNN模型。下面是一个使用sklearn实现KNN模型的示例代码。 ```python from sklearn.neighbors import KNeighborsClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据集 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建KNN分类器 knn = KNeighborsClassifier(n_neighbors=3) # 训练模型 knn.fit(X_train, y_train) # 预测测试集 y_pred = knn.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) ``` 在上面的代码中,我们使用了鸢尾花数据集作为示例数据集,首先加载数据集并将其分为训练集和测试集。然后,我们创建了一个KNN分类器,并使用训练集对其进行训练。最后,我们对测试集进行预测,并计算准确率。 在创建KNN分类器时,我们指定了一个参数n_neighbors,它表示我们要考虑多少个最近的邻居。在训练模型时,KNN算法会计算每个样本点与最近的k个邻居之间的距离,并将它们归为最近的邻居中出现最多的类别。 总的来说,使用sklearn实现KNN模型非常简单,只需要几行代码就可以完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值