Day28-机器学习(2) KNN

KNN简单说明
为一种监督学习的方法,其原理就好像物以类聚一样,相同的东西会聚在一起
我们可以设定一个参数叫n_neighbors,假如我今天填入的数字是3
它就会将我的资料依据周围3个最近的资料来作分类
举例说明:
今天我们要将资料做分类,分为红色圈圈或黄色圈圈
图中的黑色圈圈为未分类资料,而我将n_neighbors设为3
所以它会观察离它最近的的三个点,为一个黄色圈圈、两个红色圈圈
因为红色圈圈比较多,所以它被分为了红色
https://ithelp.ithome.com.tw/upload/images/20210908/201404160KgJ2rnGn0.png

这样说起来,你可能会问KNN是在train什麽?不就是依据原本资料的分布状况来做分类吗?
是的!没错~也就只是根据有label的资料分布来计算没有label的资料该麽分群而已
所以它没有实际train这个动作,只是对数据做一些运算

使用方法
这边我使用的资料集为Titanic
前处理我直接跟Day24、25、26的一样,如果想了解可以去看前面的文章

import KNN

Classifier:

from sklearn.neighbors import KNeighborsClassifier

Regression:

from sklearn.neighbors import KNeighborsRegressor

自己先设一个变数,此变数为你的model名称,并将KNeighborsClassifier()指派给它
https://ithelp.ithome.com.tw/upload/images/20210908/20140416Ew56zK9K4n.png

训练model
https://ithelp.ithome.com.tw/upload/images/20210908/20140416RgfkoGxNUz.png

查看训练结果的成绩
https://ithelp.ithome.com.tw/upload/images/20210908/20140416cQQ8AMwhQC.png

使用model预测结果
https://ithelp.ithome.com.tw/upload/images/20210908/20140416Ag8MVAPvMG.png

缴交结果
IT_submission 为DNN的训练结果(前面文章有写)
SVM_submission 为SVM的训练结果(前面文章有写)
KNN_submission 为KNN的训练结果 (就是本文章的结果)
Kmeans_submission 为Kmeans的训练结果(後面文章会写)
此全部都用相同的资料前处理
https://ithelp.ithome.com.tw/upload/images/20210909/20140416ms4wJFXlla.png

附上程序码,程序码我有分过目录,你可以直接跳到KNN
https://colab.research.google.com/drive/16jTbu8jIDWEaast4eMPRKUBLlUBOLffT?usp=sharing

你可能会想说:靠!这不是跟昨天讲的SVM使用方法根本一模一样
对,就是一模一样,我也差不多弹尽粮绝了,不知道要说什麽


<<:  [Day18]-档案读取

>>:  33岁转职者的前端笔记-DAY 30 终点也是起点

Day02 Package的 类别

Package 通过使用packages 的模式,可以创建易於共享的模组化程序码 一个最基本的pac...

[DAY 15] 三人行石头火锅

三人行石头火锅 地点:台南市新营区民治路111号 时间:17:00~23:00 居然撑15天了~XD...

[区块链&DAPP介绍 Day15] Solidity 教学 - events

今天来介绍一下 solidity 里面一个很特殊的东西 events。 我们介绍了这几天,都还没有看...

什麽是业务模型画布 (Business Model Canvas)?

业务模型画布(BMC)是一种战略管理和企业家工具,它是一种直观的图表,可让您描述,设计,挑战,发明和...

【Day 19】深度学习(Deep Learning)--- Tip(四)--- Momentum

昨天说在做深度学习的时候,我们可能会卡在Local minimum、saddle point、甚至是...