模型评估
准确率计算
y_pred=knn.predict(X)
from sklearn.metrics import accuracy_score
print(accuracy_score(y,y_pred))
准确率是指基于模型进行预测,预测正确的正确率
主要目的是判断新数据的效果。
绿色曲线:把所有的红蓝都分开了,但是这个曲线特别复杂。增加了维度,通用性不好。
复杂化造成了过度拟合
需要将训练数据和测试数据分开、
不能用同一个数据集进行训练和预测,需要使用不同的数据集来进行。
将数据集分为训练数据和测试数据
训练数据与测试数据相同的缺点:
模型评估。
用所有的数据进行训练可能会适得其反,不仅模型复杂化,且准确度不一定更高
评估思想:将训练数据和测试数据分离
判断模型的准确率:比较预测结果和实际结果,正解的比例占到多少
from sklearn.metrics import accuracy_scoreprint(accuracy_score(y,y_pred))
将整个数据集用于训练与测试,训练数据与测试数据相同导致的问题:
1)训练模型的最终目标是为了预测新数据对应的结果
2)最大化训练准确率通常会导致模型复杂化
3)过度复杂模型容易导致训练数据的过度拟合
# 模型评估 比较不同K值 模型的好坏
# 全数据集训练与预测
# 训练数据集、测试数据集分离
# 如何选择模型合适的参数,预测新数据对应结果
模型评估
#模型训练之全数据集
from sklearn.neighbors import KNeighborsClassifier
knn_1 = KNeighborsClassifier(n_neighbors=1)
knn_1.fit(X,y)
y1_pre = knn_1.predict(X)
print(y1_pre.shape)
#模型评估之准确率
from sklearn.metrics import accuracy_score
print(accuracy_score(y,y1_pre))