前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >机器学习篇(三)

机器学习篇(三)

作者头像
不断折腾
发布于 2019-09-23 03:17:45
发布于 2019-09-23 03:17:45
4480
举报
k-近邻算法(KNN)

注:本篇文章没有具体的实例,后面会有的。

简单描述:在预测目标值的时候选择和自己相似的目标值。比如,有五个人分在在武汉的五个区域,小明不知道自己在什么区域,他计算自己和其他4个人的距离,谁离自己最近,他在什么区,小明就在什么区。

k-近邻算法计算公式:欧式距离公式

计算步骤:

1、算距离:给定测试对象,计算它与训练集中的每个对象的距离

2、找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻

3、做分类:根据这k个近邻归属的主要类别,来对测试对象分类

为防止某个值对结果的影响较大需要将数据进行标准化处理。

KNN模块介绍:

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm='auto')

n_neighbors:选择相似的5组数据,按照比例分类。

algorithm:指定找出相似的数据的算法,比如有ball_tree和kd_tree,而auto则是根据传递的数据选择合适的算法。

当数据集较大的时候需要处理:

1、缩小数据集范围

2、如果有日期类型需要处理日期

3、删除不需要的特征

4、数据处理完需要标准化处理

5、使用算法进行预测

常见问题:

k值取多少?也就是参数n_neighbors的大小

k值取的小:容易受到异常值的影响。

k值取的大:容易送到k值数据类别多而波动。

性能:

懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢

可解释性较差。

优点:

简单,易于理解,易于实现,无需估计参数,无需训练

一般使用场景:小数据样本,几千-几万的数据。

朴素贝叶斯算法

k-近邻算法是和那个相似就是那个类别,而朴素贝叶斯算法会计算出属于某个类别的概率。

使用朴素贝叶斯算法的前提条件:特征独立。在计算概率的时候要求两个事件是独立的,这里也一样。

计算公式:

模块介绍:

sklearn.naive_bayes.MultinomialNB(alpha=1.0)

alpha:拉普拉斯平滑系数

拉普拉斯平滑系数是为了防止计算出概率为0的情况。

步骤:

1、对数据进行前期处理(切割等)

2、生成特征词:TfidfVectorizer(比如科技类文章,云计算出现的次数)

3、利用朴素贝叶斯算法进行计算

优点:

1、稳定的分类效率

2、对缺失护具不敏感,常用文本分类

3、分类准确率高,速度快

缺点:

特征之间需要独立,不能相互影响。

精确率和召回率

在上述文章中我们判断预测是否准确用准确率。也就是预测的正确结果占全部的百分比。

召回率:简单来说就是预算正确的占用实际正确的百分比,在有些领域是需要看召回率的。比如:

50个人中有有20个人是癌症,用算法识别出来有18个人是癌症,但是有3个人识别错了,这个召回率就是

15/20。在有些领域需要提高召回率,宁可识别出30个人是癌症,实际得癌症的人全在里面。

精确率:计算计算对的值占得百分比。一般不使用。

评估模型模块:

sklearn.metrics.classification_report(y_true,y_pred,target_names=None)

y_true:真实目标值

y_pred:预测目标值

target_names:目标类别名称

返回类别的精确率(precision)和召回率(recall)。

KNN算法调优

交叉验证

以前是将数据分为训练集和测试集,交叉验证:

1、把训练集分为n等分。n是自己设定。把其中第一份拿出来当做验证集。来计算得出一个准确率。

2、把第2份当做验证集,其他当做训练集得出一个准确率。

3、同上。第三份,第四份等等。

4、求出平均准确率

k-近邻算法中的n_neighbors参数该给多少?

超参数搜索(网格搜索):

n_neighbors这种需要手动指定的叫做超参数,所以需要设定比如1,3,5等

都采用交叉验证来进行评估,最后选出最优参数来建立模型。

超参数搜索(网格搜索)使用:

sklearn.model_selection.GridSearchCV(estimator,param_grid=None,cv=None)

estimator:估计器对象,也就是算法。

param_grid:参数(字段形式),{'n_neighbors':[1,3,5]}

cv:指定多少次交叉验证,一般使用10.

分析结果:

best_score_:最好的结果

best_estimator_:最好的参数模型

cv_results_:每次交叉验证后的准确率

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python入门到放弃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
人工智能_4_k近邻_贝叶斯_模型评估
机器学习常用算法 k近邻算法 求出未知点 与周围最近的 k个点的距离 查看这k个点中大多数是哪一类 根号((x已知-x未知)^2+(y已知-y未知)^2) 即平面间2点距离公式 收异常点影响较大,因此需要做标准化处理 API:sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm="auto") algorithm:{"auto","ball_tree","kd_tree","brute"}
Dean0731
2020/05/08
4790
机器学习实例篇
数据来源:https://www.kaggle.com/c/facebook-v-predicting-check-ins
不断折腾
2019/09/23
6110
机器学习基础篇_2/2
原始数据 –> 数据特征工程(训练数据和测试数据) –> 选择合适的算法进行学习 –> 建立模型 –> 模型评估(测试数据) –> 判断模型是否合格 –> 模型应用(一般以API的形式提供)
卡伊德
2022/09/13
5540
机器学习基础篇_2/2
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
K近邻(K-Nearest Neighbors, KNN)算法作为一种基础且广泛应用的机器学习技术,其API的重要性不言而喻。它提供了快速、直接的方式来执行基于实例的学习,通过查找与待分类样本最邻近的K个样本,并基于这些邻近样本的类别来预测新样本的类别。KNN API的标准化和易用性,使得数据分析师和开发者能够轻松集成该算法到他们的项目中,无需深入算法细节,即可享受其强大的分类与回归能力。此外,KNN API通常还包含参数调整功能,如K值选择、距离度量方法等,使得用户可以根据具体需求优化算法性能,进一步凸显了其在机器学习实践中的不可或缺性。
小言从不摸鱼
2024/09/10
2910
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习常用算法-k近邻算法
概述 今天介绍一下机器学习常用算法,以及常用的数据处理技巧等。我们都知道机器学习针对特定任务从经验中学习,并且使得我们的任务效果越来越好。我们看一机器学习的workflow,如下所示: 数据采集和标记->数据清洗->特征选择->模型选择->模型训练和测试->模型性能评估和优化->模型使用即上线。 我们一般通过Python来实现机器学习常用算法的程序,所以基于Python语言常用的机器学习类库及其第三方扩展库有:IPython,Jupyter,numpy,matplotlib,scipy,scikit-lea
吕海峰
2018/07/03
8860
KNN算法API
💡💡为什么要划分数据集呢? 结论:不能将所有数据集全部用于训练,为了能够评估模型的泛化能力,可以通过实验测试对学习器的泛化能力进行评估,进而做出选择。因此需要使用一个 "测试集" 来测试学习器对新样本的判别能力,以测试集上的 "测试误差" 作为泛化误差的近似。
用户10950404
2024/07/30
1080
KNN算法API
sklearn库的使用_导入turtle库的方法
机器学习的开发基本分为六个步骤, 1)获取数据, 2)数据处理, 3)特征工程, 4)机器学习的算法训练(设计模型), 5)模型评估, 6)应用。
全栈程序员站长
2022/11/10
7830
机器学习_knn算法_2
鸢尾花的数据分析 target : 目标值,代表着类别(c) datasets.load_iris()得到的不是字典是普通的hash类型,因为pandas,matplotlib,sklearn,numpy都是由c封装的,所有的库不是python写的都是由c封装的 是一个元类 In [2]: #target : 目标值,代表着类别, #得到的不是字典是普通的hash类型 from sklearn import datasets iris = datasets.load_iris() In [3]: #DESC
以某
2023/03/07
4250
机器学习_knn算法_2
KNN算法原理及应用
(5)最后,使用预测模型对这些待测的特征向量进行预测并得到结果(Expected Model)。
@小森
2024/03/15
2870
KNN算法原理及应用
机器学习-K-近邻算法-模型选择与调优
将拿到的训练数据,分为训练和验证集,以下图为例:将数据分成4份,其中一份作为验证集,然后经过4次(组)的测试,每次都更换不同的验证集,即得到4组模型的结果,取平均值作为最终结果。由于是将数据分为4份,所以我们称之为4折交叉验证。
后端码匠
2021/08/19
4650
机器学习入门(六):分类模型评估方法
掌握分类模型评估方法对于数据科学家和机器学习工程师至关重要。它不仅帮助验证模型的有效性,还能指导模型优化方向,确保模型在实际应用中表现优异。通过精确率、召回率等指标,可以全面评估模型性能,识别误分类的类别,从而针对性地改进。
小言从不摸鱼
2024/09/10
1900
机器学习入门(六):分类模型评估方法
机器学习笔记之scikit learn基础知识和常用模块
主要包括特征提取(Feature Extraction)和特征选择(Feature Selection)
Jetpropelledsnake21
2020/12/31
1.2K0
K 近邻算法
鸢尾花Iris Dataset数据集是机器学习领域经典数据集,鸢尾花数据集包含了150条鸢尾花信息,每50条取自三个鸢尾花中之一:Versicolour、Setosa和Virginica。
@小森
2024/03/15
1370
K 近邻算法
机器学习入门基础知识汇总
机器学习(Machine Learning,简称 ML)是人工智能(AI)领域的重要组成部分,涉及使用算法从数据中提取模式并进行预测。随着数据量的快速增长和计算能力的提升,机器学习在各个领域都有着广泛的应用,如金融、医疗、自动驾驶等。在学习机器学习的过程中,掌握一些基础知识是非常重要的。本文将介绍机器学习的核心概念、常见算法以及如何在实际问题中应用这些知识。
一键难忘
2025/01/25
1980
机器学习速成第二集——监督学习之分类(理论部分)!
监督学习中的分类部分是机器学习中非常重要的一个领域,它涉及将输入数据映射到预定义的类别或标签上。在监督学习中,算法通过有标记的数据进行训练,从而能够对新的未标记数据进行预测和分类。
用户11315985
2024/10/16
1210
机器学习速成第二集——监督学习之分类(理论部分)!
机器学习 | KNN, K近邻算法
k近邻法 (k-nearest neighbor, k-NN) 是一种基本分类与回归方法。是数据挖掘技术中原理最简单的算法之一,核心功能是解决有监督的分类问题。KNN能够快速高效地解决建立在特殊数据集上的预测分类问题,但其不产生模型,因此算法准确 性并不具备强可推广性。
数据STUDIO
2021/06/24
9670
sklearn:Python语言开发的通用机器学习库
scikit-learn是Python语言开发的机器学习库,一般简称为sklearn,目前算是通用机器学习算法库中实现得比较完善的库了。其完善之处不仅在于实现的算法多,还包括大量详尽的文档和示例。其文档写得通俗易懂,完全可以当成机器学习的教程来学习。
博文视点Broadview
2020/06/11
4720
Scikit-Learn Cheat Sheet:Python机器学习
一个方便的scikit-learn备忘录,用于使用Python进行机器学习,包括代码示例。
iOSDevLog
2018/07/25
1.4K0
Scikit-Learn Cheat Sheet:Python机器学习
机器学习模型从理论到实战|【004-K最邻近算法(KNN)】基于距离的分类和回归
文章链接:https://cloud.tencent.com/developer/article/2472164
远方2.0
2024/11/30
1370
机器学习模型从理论到实战|【004-K最邻近算法(KNN)】基于距离的分类和回归
以《简单易懂》的语言带你搞懂有监督学习算法【附Python代码详解】机器学习系列之KNN篇[通俗易懂]
它的本质是通过距离判断两个样本是否相似,如果距离够近就认为他们足够相似属于同一类别。
全栈程序员站长
2022/09/01
6230
相关推荐
人工智能_4_k近邻_贝叶斯_模型评估
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文