IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习——K近邻算法及乳腺癌检测分类 -> 正文阅读

[人工智能]机器学习——K近邻算法及乳腺癌检测分类

一、引言

KNN可用于分类和回归,用于分类时是多分类方法。

注意:由于此方法根据预测点近邻的各类点的个数多少来确定该预测点的类别,因此原始类别数据不均衡,将严重影响最终分类效果。

二、KNN分类思想

如上图所示,有两类不同的样本,分别为蓝色正方形和红色三角形,而绿色的圆代表待分类的数据,所以呢我们就要给绿色的圆分类。

  1. 如果K=3,绿色的圆最近的三个邻居分别是:两个红色的三角形和一个蓝色的正方形那我们就少数服从多数,基于统计的方法,判定绿色的圆属于红色三角形这一类。
  2. 如果K=5,绿色的圆最近的五个邻居分别是:两个红色的三角形和三个蓝色的正方形那我们就少数服从多数,基于统计的方法,判定绿色的圆属于蓝色正方形这一类。

三、?使用KNN完成乳腺癌检测分类

乳腺癌检测分类数据集说明:

? ?乳腺癌检测数据集:数据集共有569个样本,每个样本有30个特征,其中357个阳性,212个阴性

?数据集已经在资源中上传。

四、Python代码实现

(1)读入数据集

import numpy as np
import pandas as pd
data1=pd.read_csv('./data_picture/chapter3/breast-cancer.csv')
data1.head()

(2)生成训练集和测试集(我们将label提出来,生成X,Y;75%训练集25%测试集;随机种子数是个数就可以)

X=data1.drop('class',axis=1)
y=data1['class']
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=6)

(3)由于方法用到了距离,而且距离值直接影响到聚类效果,因此在聚类前必须对每一个特征数据进行标准化或归一化处理。

from sklearn.preprocessing import StandardScaler
ss=StandardScaler()
X_train=ss.fit_transform(X_train)
X_test=ss.transform(X_test)

(4)构建KNN模型和预测?

from sklearn.neighbors import KNeighborsClassifier
model=KNeighborsClassifier()
model.fit(X_train,y_train)

(5)模型评估

from sklearn.metrics import classification_report
print("训练集的模型评估指标:")
model_score=model.score(X_train,y_train)
print()
print('The accuracy of train data',model_score)
print('--------------------------------------------------------------------------')
y_train_predict=model.predict(X_train)
model_report1=classification_report(y_train,y_train_predict)
print(model_report1)
print('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$')

print("测试集的模型评估指标:")
model_score=model.score(X_test,y_test)
print()
print('The accuracy of test data is',model_score)
print('--------------------------------------------------------------------------')
y_predict=model.predict(X_test)
model_report=classification_report(y_test,y_predict)
print(model_report)
print('--------------------------------------------------------------------------')

结果:

(6)模型保存(方便后面使用)?

from sklearn.externals import joblib
joblib.dump(model,'model_knn.pkl')  

(7)模型导入(利用调入的模型对数据进行预测时,要保证待预测数据和模型训练时的数据格式一致,如果训练时数据做了标准化,?则待预测数据必须做相应的标准化。)

?

model=joblib.load('model_knn.pkl')     #调入模型
y_pred=model.predict(X_test)       
model.score(X_test,y_test)

结果:

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:57:15  更:2022-09-24 20:59:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 18:45:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计