knn案例:预测乳腺癌的良性或恶性

 数据探索与分析

from sklearn.datasets import load_breast_cancer
breast_cancer = load_breast_cancer()
print(breast_cancer.DESCR)

运行结果

数据分析

数据集包含了 30 个特征,包括肿瘤的半径、纹理、对称性等,以及目标变量,即肿瘤的性质( 0 :良性, 1 :恶 性)。

解题提示

1. 数据预处理: 在构建模型之前,记得对数据进行标准化,以确保不同特征的尺度一致。
2. 选择合适的算法: 考虑使用 K 近邻算法( KNN )进行分类任务。
3. 调参优化: 使用交叉验证来选择最优的 K 值,以提高模型的性能。
4. 模型评估: 使用准确率作为评估标准,评估模型的性能。
from sklearn.datasets import load_breast_cancer
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV

# 加载乳腺癌数据集
mydata = load_breast_cancer()

# 将特征数据和标签数据存储到 DataFrame 中,并添加列名称
mydata2 = pd.DataFrame(mydata['data'], columns=mydata.feature_names)
mydata2['target'] = mydata.target

# 实例化 StandardScaler 对象进行特征数据标准化处理
transfer = StandardScaler()

# 划分数据集为训练集和测试集,其中训练集占总数据的 70%
x_train, x_test, y_train, y_test = train_test_split(mydata.data, mydata.target, train_size=0.7, random_state=22)

# 对训练集和测试集的特征数据进行标准化处理
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

# 实例化 K 近邻分类器对象
model = KNeighborsClassifier()

# 使用网格搜索交叉验证进行参数调优
model2 = GridSearchCV(estimator=model, param_grid={'n_neighbors':[3,4,5,6]}, cv=5)
model2.fit(x_train, y_train)

# 使用最佳模型对测试集进行评估,得到模型准确率
score2 = model2.score(x_test, y_test)

# 打印模型准确率和最佳参数
print(score2)
print(model2.best_params_)

运行结果

  • 17
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值