当前位置: 首页 > news >正文

注册域名不建设网站做外贸接私单的网站

注册域名不建设网站,做外贸接私单的网站,做网站更新维护工资高吗,小说发表哪个网站赚钱机器学习:学习k-近邻(KNN)模型建立、使用和评价 文章目录机器学习:学习k-近邻(KNN)模型建立、使用和评价一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.数据读取2.数据理解3.数据准备4.算…

机器学习:学习k-近邻(KNN)模型建立、使用和评价


文章目录

  • 机器学习:学习k-近邻(KNN)模型建立、使用和评价
  • 一、实验目的
  • 二、实验原理
  • 三、实验环境
  • 四、实验内容
  • 五、实验步骤
    • 1.数据读取
    • 2.数据理解
    • 3.数据准备
    • 4.算法选择及其超级参数的设置
    • 5.具体模型的训练
    • 6.用模型进行预测
    • 7.模型评价
  • 总结


一、实验目的

学习kNN(k-Nearest Neighbors)算法

二、实验原理

k-近邻(kNN,k-Nearest Neighbors)算法是一种基于实例的分类方法。该方法就是找出与未知样本x距离最近的k个训练样本,看这k个样本中多数属于哪一类,就把x归为那一类。k-近邻方法是一种懒惰学习方法,它存放样本,直到需要分类时才进行分类,如果样本集比较复杂,可能会导致很大的计算开销,因此无法应用到实时性很强的场合。

kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。

K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响给予不同的权值(weight),如权值与距离成反比

例如,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。
在这里插入图片描述
在KNN中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题,在这里距离一般使用欧氏距离或曼哈顿距离:
在这里插入图片描述
接下来对KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:

1.计算已知类别数据集中的点与当前点之间的距离;

2.按照距离递增次序排列;

3.选取与当前点距离最小的 K 个点;

4.确定前 K 个点所在类别的出现频率;

5.返回前 K 个点出现频率最高的类别作为当前点的预测分类

三、实验环境

Python 3.9

Anaconda

IPython Notebook

四、实验内容

学习KNN算法,了解模型创建、使用模型及模型评价等操作

五、实验步骤

1.数据读取

1.导入os模块,返回当前工作路径

import os
os.getcwd()

在这里插入图片描述

2.导入pandas和numpy包,并改变工作目录

import pandas as pd
import numpy as np
import os
os.chdir(r'D:\CSDN\数据分析\KNN')
print(os.getcwd())

在这里插入图片描述

3.读取该目录下的bc_data.csv文件,并返回文件内容

bc_data = pd.read_csv(r'D:\CSDN\数据分析\KNN\bc_data.csv', header=0)  
bc_data.head() 

在这里插入图片描述

其中header参数用来指定数据开始读取行数。设置为0表示从第一行开始读取,设置为1,表示从第二行开始读取

2.数据理解

1.shape函数是numpy.core.fromnumeric中的函数,直接用.shape可以快速读取矩阵的形状,使用shape[0]读取矩阵第一维度的长度

bc_data.shape

在这里插入图片描述

2.查看bc_data的列名

print(bc_data.columns)

在这里插入图片描述

3.查看bc_data的描述性统计

bc_data.describe()

在这里插入图片描述

3.数据准备

1.删除bc_data中的id列,其中axis使用0值表示沿着每一列或行标签\索引值向下执行方法,使用1值表示沿着每一行或者列标签模向执行对应的方法

data = bc_data.drop(['id'],axis = 1)
print(data.head())

在这里插入图片描述

2.删除data文件中的diagnosis列并查看X_data内容

X_data = data.drop(['diagnosis'], axis=1)          
X_data.head()  

在这里插入图片描述

3.使用numpy中的ravel()方法将data中的多维数据降为一维,并使用切片查询y_data

这里需要注意的是np.ravel()返回的是视图,修改时会影响原始矩阵

y_data = np.ravel(data[['diagnosis']])    
y_data[0:6] 

在这里插入图片描述

4.导入sklearn库中的train_test_split函数,划分训练集和测试集

from sklearn.model_selection import train_test_split  
X_trainingSet, X_testSet, y_trainingSet, y_testSet = train_test_split(X_data, y_data, random_state=1)  

在这里插入图片描述
参数解释如下:
在这里插入图片描述

5.使用shape函数查看训练集矩阵形状

print(X_trainingSet.shape)

在这里插入图片描述

6.使用shape函数查看测试集矩阵形状

print(X_testSet.shape)

在这里插入图片描述

4.算法选择及其超级参数的设置

1.导入sklearn模块中的KNeighborsClassifier函数,并使用kd_tree算法

from sklearn.neighbors import KNeighborsClassifier  
myModel = KNeighborsClassifier(algorithm='kd_tree') 

5.具体模型的训练

1.使用.fit方法对训练数据进行模型拟合

myModel.fit(X_trainingSet,y_trainingSet)

在这里插入图片描述

6.用模型进行预测

1.使用.predict方法,用训练好的模型进行预测

y_predictSet = myModel.predict(X_testSet) 

2.打印输出y_predictSet预测结果

print(y_predictSet) 

3.打印输出y_testSet

print(y_testSet)

在这里插入图片描述

7.模型评价

1.导入sklearn模块中的accuracy_score,对模型进行评价

from sklearn.metrics import accuracy_score
print(accuracy_score(y_testSet,y_predictSet))

在这里插入图片描述

说明:模型的正确率为0.937062937063


总结

k-近邻(kNN,k-Nearest Neighbors)算法是一种基于实例的分类方法。该方法就是找出与未知样本x距离最近的k个训练样本,看这k个样本中多数属于哪一类,就把x归为那一类。k-近邻方法是一种懒惰学习方法,它存放样本,直到需要分类时才进行分类,如果样本集比较复杂,可能会导致很大的计算开销,因此无法应用到实时性很强的场合。

kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。

http://www.yayakq.cn/news/225464/

相关文章:

  • 阿里巴巴网站备案专业视频网站开发公司
  • 青岛做网站哪个公司好成都基金品牌设计
  • 网站刷流量有用吗简单的公司网站系统
  • 网站建设招标需求wordpress注册时添密码
  • 梅州建站联系方式商城网站建设需要多少钱
  • 巢湖做网站常州建设工程交易网站
  • 网站建设技术支持英文建设工程合同的分类
  • 公司排名的网站如何用ps做网站首页
  • 免费企业网站系统找苏州网站建设
  • 全国旅游大型网站建设大学生创意app点子
  • 做高端网站wordpress下拉导航
  • 网站漂浮图怎么做自己怎么创建微信公众号
  • 美食网站建设合同范例网页游戏传奇大全
  • 网站自己怎么做优化内部网站建设软件
  • 网站策划书的编写个人网上银行
  • 查询建设工程规范的网站企业登记
  • 那里有正规网站开发培训学校wordpress cp 部署
  • 旅游门票做的最好的是哪个网站企业网站建站流程
  • 织梦网站更改主页链接contrast wordpress
  • 上海网站设计培训班如何创建游戏网站
  • 做任务赚话费的网站wordpress 极简模版
  • 建设银行兰州分行网站博敏 网站开发
  • 注册top域名做公司网站wordpress 开启链接
  • 做 爱 网站小视频下载网络管理系统的每个节点都包含一组与管理有关的软件
  • 定制网站开发公司排名宝塔重装WordPress
  • 做网站在线支付系统多少钱工信部备案管理系统
  • 服务器租用相关网站工作室创业项目
  • 昆明网站建设c3sales1534939978姐的微信德惠市
  • 工程建设监理网站企业网站的建立费用 作什么科目
  • 宝盈集团直营网站怎么做温州网站建设模板总部