Day29-机器学习(3) Kmeans

Kmeans简单说明
为一种非监督学习的方法,其原理为:
(1)依据你想分成几个群,就先找出几个资料点视为群组中心点
(2)再将其他资料根据与其距离最近的群组中心点归为同一类
(3)之後依据分类好的资料重新计算群组中心点
步骤(3)重新计算完群中心後,就会回到步骤(2)跟(3)
一直到群组中心不在改变或达到最大迭代次数

用程序码来比喻就好像是

步骤(1)
while True:
  步骤(2)
  步骤(3)
  if(群组中心不在改变或达到最大迭代次数):
    break

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

import KMeans

from sklearn.cluster import KMeans

自己先设一个变数,此变数为你的model名称,并将KMeans()指派给它
後面参数n_clusters为设定你想分成几群
https://ithelp.ithome.com.tw/upload/images/20210909/20140416qvMD6KFMxp.png

训练model
https://ithelp.ithome.com.tw/upload/images/20210909/20140416hlEcVctvej.png

查看中心点
https://ithelp.ithome.com.tw/upload/images/20210909/20140416dwAoamLwWw.png

预测结果
https://ithelp.ithome.com.tw/upload/images/20210909/20140416WautMhsyzz.png

查看在验证集上的正确率
https://ithelp.ithome.com.tw/upload/images/20210909/20140416V52ToccnIi.png

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

附上程序码
https://colab.research.google.com/drive/1_awrM3Un_pWnDUvXE2iYX35RS8ujHLqQ?usp=sharing


<<:  [Day23] swift & kotlin 游戏篇!(5) 小鸡BB-游戏制作-Tab功能分页

>>:  GCP Container Registry

Day 6 - Laravel 8.0 如何快速建立API

在Day 3 - 如何运用 Laravel 框架设计模式规划大型专案,当中提到Controller-...

Day 25 [模块化] 前端模块化:CommonJS,AMD,CMD,ES6

文章参考自 https://juejin.im/post/6844903744518389768 h...

Gulp 压缩优化程序码(1) DAY88

这里我们先介绍 gulp-clean-css(压缩css) 与 gulp-uglify(压缩js) ...

W10 无法存取Server2003网路磁碟

W10 预设只勾选SMB direct 所以要手动勾选SMB 1.0 *更新後可能会被取消勾选 ...

如何在 Angular 建立 Breadcrumb (面包屑)

面包屑 为提供网站里的导航,让使用者容易了解当下所在的位置 刚好也呼应前一天使用 router 的部...