【Stanford机器学习笔记】11-Unsupervised Learning

前几节主要讲了4种应用比较广泛的监督机器学习算法:线性回归,逻辑回归,神经网络,SVM。并对如何评价机器学习算法做了简要概述,其中主要包括欠拟合,过度拟合,学习曲线,正则化,precision and recall等等,接下来主要讲几种比较常用的非监督机器学习算法,例如K-means等。以及数据处理方法:PCA。

1. Clustering

1.1 Unsupervised Learning: Introduction

非监督分类即为训练数据中没有标记数据,我们要做的就是通过合适的算法(聚类)找到数据中存在的一种结构。然后对数据进行成功分类。

这里写图片描述
这里写图片描述

非监督分类也有很多应用。
这里写图片描述

1.2 K-Means Algorithm

K-Means算法的主要流程是:
(1)假设我们要从数据中分出两类,首先随机选择两个(K=2)聚类中心Centroids

这里写图片描述

(2)计算每一个样本点与各聚类中心的距离,根据距离的大小将样本点分配给距离最小的聚类中心类别c(i)

这里写图片描述

(3)对分配给某一聚类中心的所有样点求取平均值,移动聚类中心到新的聚类中心,然互再进行第二步,将所有样本点重新计算

这里写图片描述

(4)依次循环第二步和第三步,直至算法收敛(迭代结束)

这里写图片描述

K-Means算法的要点:

  • 输入K个聚类中心
  • 输入所有样本点
  • 样本点为n维,即没有了偏差项X0
  • 需要注意的是,如果一个聚类中心在迭代过程中没有分配任何样点,则一般是删除这个聚类中心,或者是重新随机选择一个聚类中心。

这里写图片描述
这里写图片描述

对于明显不存在簇类的数据集,K-Means也能找到合适的聚类中心进行分类,如T-shirt的型号的选择实例。

这里写图片描述

1.3 Optimization Objective

K-Means算法的代价函数又叫做失真函数(Distortion Function),目标是找到每一个样本点与对应聚类中心的最小值。

这里写图片描述
这里写图片描述

1.4 Random Initialization

(1)K-Means算法中最重要的一步就是随机选择初始聚类中心,一般的方法是从样本中随机选择样本点作为聚类中心。

这里写图片描述

(2)由于初始化聚类中心的不同,这就可能导致K-Means算法会产生局部最优解。

这里写图片描述

(3)为了避免因为初始化导致的局部最优问题,我们可以选择

  • 随机选择样本点
  • 多次初始化聚类中心,然后计算K-Means的代价函数,根据失真代价函数的大小选择最优解。

这里写图片描述

1.5 Choosing the Number of Clusters

除了初始化聚类中心,另外一个重要的参数时如何选择K的大小:
(1)肘部原则
通过失真代价函数关于K大小的函数曲线,代价函数会醉着K的增大逐渐减小,直至趋于稳定,由此我们可以判断,当拐角的时候是最适合的K大小,但是实际情况中,往往我们无法得到一个明显的拐点用于判断。

这里写图片描述

(2)根据应用目的进行选择
根据K-Means算法的应用目的,选择合适的K的大小,即类别的个数。

这里写图片描述

### 如何在Linux系统中使用Telnet命令连接到指定端口 在Linux系统中,`telnet` 是一种用于远程登录和网络调试的工具。其基本功能之一是可以用来测试特定主机上的某个端口是否开放并可访问。 #### Telnet命令的基本语法 `telnet` 的基础语法如下: ```bash telnet [-468EKLadr] [-Xa authtype] [-b hostalias] [-e escapechar] [-l user] [-n tracefile] [host [port]] ``` 其中 `host` 表示目标服务器地址,可以是域名或IP地址;`port` 则表示要连接的目标端口号[^1]。 #### 连接到指定端口的具体方法 假设需要测试 IP 地址为 `192.168.120.206` 的设备上是否有服务监听于端口 `80`,可以通过以下方式执行: ```bash telnet 192.168.120.206 80 ``` 如果该端口未被占用或者防火墙阻止,则会收到类似于下面的消息: ``` Trying 192.168.120.206... telnet: connect to address 192.168.120.206: Connection refused telnet: Unable to connect to remote host: Connection refused ``` 这表明无法成功建立连接[^2]。 当尝试连接至已开启的服务时(比如HTTP默认使用的80端口),可能会看到类似这样的响应: ``` Trying 192.168.x.y... Connected to www.example.com. Escape character is '^]'. ``` 此时已经建立了与目标机器相应端口之间的通信链路。 #### 开启Telnet服务及配置防火墙规则 为了能够正常接收来自其他计算机发起的telnet请求,在本地也需要确保安装有支持此协议的应用程序以及调整好安全策略设置。例如对于CentOS/RHEL类发行版而言,默认情况下可能并未预装客户端/服务器组件,需手动添加: ```bash yum install telnet* ``` 接着按照需求修改SELinux状态或将对应流量加入例外列表里去——即允许外部访问TCP第23号标准shell交互界面入口处。另外还需记得更新包管理器缓存同步最新补丁版本信息后再操作实际部署环境前先做好充分准备以免造成不必要的麻烦哦! 最后一步便是向数据包过滤子系统追加准入条件语句来放行入站方向针对上述提及过的知名编号所对应的业务逻辑处理单元之间相互作用所产生的合法报文交换活动了。 ```bash iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT service iptables save && service iptables restart ``` 以上指令序列的作用在于永久生效地把匹配条件满足的新建型态下的TCP三次握手初始SYN标志位置位正确的数据帧对象纳入白名单范畴之内从而实现自动化运维流程简化管理工作量提升效率减少人为失误概率的目的[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值