写在前面: 我是「虐猫人薛定谔i」,一个不满足于现状,有梦想,有追求的00后
本博客主要记录和分享自己毕生所学的知识,欢迎关注,第一时间获取更新。
不忘初心,方得始终。
❤❤❤❤❤❤❤❤❤❤
数据介绍
数据中各个字段的含义如下:
思路分析
具体的实现流程如下:
1、导入数据
2、数据切分
3、模型训练与评估
4、交叉验证
5、打印结果
代码
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier, RadiusNeighborsClassifier
# 导入数据
data = pd.read_csv("./res/pima-indians-diabetes/diabetes.csv")
# 数据切分
X = data.iloc[:, 0:8]
Y = data.iloc[:, -1]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=1024)
# 模型训练与评估
model1 = KNeighborsClassifier(n_neighbors=2)
model1.fit(X_train, Y_train)
score1 = model1.score(X_test, Y_test)
model2 = KNeighborsClassifier(n_neighbors=2, weights='distance')
model2.fit(X_train, Y_train)
score2 = model2.score(X_test, Y_test)
model3 = RadiusNeighborsClassifier(n_neighbors=2, radius=600.0)
model3.fit(X_train, Y_train)
score3 = model3.score(X_test, Y_test)
# 使用交叉验证
res1 = cross_val_score(model1, X, Y, cv=10)
res2 = cross_val_score(model2, X, Y, cv=10)
res3 = cross_val_score(model3, X, Y, cv=10)
# 打印结果
print(score1, score2, score3)
print(res1.mean(), res2.mean(), res3.mean())
结果
总结
从结果可以看出,使用KNN算法进行预测,预测的准确率可以达到70%左右。
蒟蒻写博客不易,加之本人水平有限,写作仓促,错误和不足之处在所难免,谨请读者和各位大佬们批评指正。
如需转载,请署名作者并附上原文链接,蒟蒻非常感激
名称:虐猫人薛定谔i
博客地址:https://blog.csdn.net/Deep___Learning