无监督学习(上)

我们实际用到的项目大都是有监督的,而人工智能未来的一大难点将会是无监督学习。在前面说过的降维算法,大部分都是无监督,除了LDA。

无监督算法有聚类,密度估计,常常用在做分类或者异常检测上。

一.聚类

聚类就是识别相似的实例把它分配给相似实例所属的集群或者组.它在这些领域用的比较多,客户细分,数据分析,异常检测,半监督学习,搜索引擎,分割图片。

常用的聚类算法有两种,一种是K-means,另一种是DBSCAN

1.K-means算法

这个算法很简单,就是把一组数据分类k个类,使用这个算法的时候一般要指明需要分为K个类。每个类都有1个中心点,它代表这个类的中心。比如,把一个数据集划分为3个类,那么就有三个中心点,其他任何一个数据,计算自己到这三个点之间的距离,距离最短的那个,就是这个点的类。

1.简单的算法过程

(1)随机选择k个点作为中心点,计算每一个中心点到其他点的距离,进行第一次聚类,得到K个类。

(2)对每个类的样本计算均值,均值作为每个类的中心,然后重新聚类,得到新的K个类。

(3)重复第二步,直到类别没有发生变化。

2.选择中心点

K-means算法的初始中心点的选择十分影响聚类结果。有一种叫做k-means++的初始化方法

(1).随机选择第一个中心点

(2).选择第k个中心点的要求是选择一个概率为D(x^{(i)})^2/\sum_{j=1}^{m}D(x^{(j)})^2的实例x(i),其中D(x^{(i)})是实例x(i)与已经选择的最远中心点的距离。也就是后面选择的中心点要尽量远离已经选择的中心点。

当然,现在使用的k-means算法根本不是上面提到的步骤,因为把所有数据都计算一遍,未免也太慢了。使用的是加速算法,三角不等式的原理。

3.惯性指标

由于中心点的选择,每次结果都不一样,因此,在使用kmeans算法的时候,可以进行多次计算,算出多个中心点和聚类结果,怎么衡量好不好呢?这个指标就是惯性,也就是每个点到其中心点的均方。这个值越小,代表效果约好。

4.k值的选择

得到一个数据集,我们也不知道它应该分为多少类,我们该怎么选择k值?

可以尝试使一组连续的k值,计算惯性,然后画图,每一个k值对应一个惯性值。在曲线的转折点就可能是聚类k值的选择。

当然这个方法有些粗糙,也有更加精确的办法。使用轮廓系数,轮廓系数我前面在机器学习的衡量指标里面讲过了。(a-b)/max(a, b),其中a是与同一个类的其他样本的平均距离,b是平均最近集群距离(也就是其他类的平均距离中最小的那个距离)。轮廓系数在-1到1之间,越大越好。计算每个类的平均轮廓系数,就能得到只好的k值。

5.k-means的局限性和应用

这个算法会被k和初始化的中心点所影响。在聚类之前,最好对样本进行归一化。

应用有许多,比如使用聚类对图像分割,

我在网上随便找了一张图片,一般来讲图片是3维,彩色图至少有3个通道,我找到的这张图有四个通道,那也无所谓。

使用kmeans算法把这朵花分割出来

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

image = plt.imread('花.png')

 

 X = image.reshape(-1, 4)#把图片转为1维度的数组

#聚类算法
#分割出红色的花
kmeans = KMeans(n_clusters=2)#聚类为两个类别
kmeans = kmeans.fit(X)

seg_img = kmeans.cluster_centers_[kmeans.labels_]#按照标签划分

seg_img = seg_img.reshape(image.shape)#转为图像的矩阵

plt.imshow(seg_img)

这个是一个十分粗糙的用法。

也能够使用kmeans对数据进行预处理。

也能够进行半监督的学习。比如我们有许多数据,有一些数据有标签,有一些数据没有标签,我们可以使用聚类找到一些有代表性的样本,然后标记,然后用来作为训练样本。这样可以大大提高分类的效率。

2.DBSCAN

这是基于局部密度的算法,它的原理如下

(1).对于每个实例,该算法都很计算在距离它的一小段领域segama内的实例,该区域被称为segama领域

(2).如果一个实例在其segama领域中至少包含min_sample个实例,则该实例被视为核心势力。也就是说核心实例位于密集区域中的实例

(3).核心实例附件所有实例都属于同一个类。由于核心实例附件也有其他核心实例,因而他们链接起来就是一长串。

(4).不是核心实例,而且也不属于这些类的实例,全都是异常。

scikit-learn中提供了这个算法。scikit-learn的接口很同意,比如fit代表训练,transform代表转换返回数据。

在上面的例子中使用kmeans算法就是这样,如果你训练,就用fit,然后想要得到训练后的数据,就可以使用fit_transform

如果要对数据分类,就要使用predict接口。

继续讲DBSCAN吧。

它有点特殊,没有提供predict这样的接口,因为它无法确认新的实例属于哪个实例,但是我们可以自己实现这个算法。

DBSCAN有很多实例,大家可以去官网看看,看官方文档你会收获很多很多,提升自己的认识。

DBSCAN需要的参数有误差eps和min_sample,这两个值对算法的影响很大

其中几个重要的实例有labels_,它返回的是每个样本的标签,标签为-1代表异常

core_sample_indices_变量可以得到核心样本的索引,components_变量可以得到核心样本本身

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
X, y = make_moons(n_samples=1000, noise=0.05)#画出图像
plt.scatter(X[:,0], X[:,1], c=y)
#可以看出分为了两个类别#创建分类器,eps如果取值太小,分类就不好
dbscan = DBSCAN(eps=0.2, min_samples=5)
#训练
dbscan.fit(X)

我们可以得到分类良好的部分作为其他分类器的训练样本

X_train = dbscan.components_

y_train = dbscan.core_sample_indices_

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/583301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习分类

1. 监督学习 监督学习指的是人们给机器一大堆标记好的数据,比如: 一大堆照片,标记出哪些是猫的照片,哪些是狗的照片 让机器自己学习归纳出算法或模型 使用该算法或模型判断出其他没有标记的照片是否是猫或狗 上述流程如下图所…

2023中国企业级存储市场:整体韧性成长,领域此消彼长

多年之后回头看,2023年也许是中国企业级存储市场标志性的一年。 后疫情时代的开启,中国数字经济快速发展、数据产业方兴未艾,为数据存储市场带来了前所未有的活力;与此同时,外部环境的不确定性骤增,人工智…

Qt+Opencv:人脸检测

话接上一篇,我们仍使用在上篇《QtOpencv:Qt中部署opencv》创建的Qt项目来测试opencv提供的sample。 在正式开始本篇之前,我们先说做一下准备工作: 一、opencv官方文档 学习最权威和最可靠的方式,就是阅读官方文档和…

大数据与人工智能|万物皆算法(第三节)

要点一:数据与智能的关系 1. 一切的核心都是数据,数据和智能之间是密切相关的。 数据是对客观现实的描述,而信息是数据转化而来的。 例如,24是数据,但说“今天的气温是24摄氏度”是信息,而说“班可以分成24…

【51单片机系列】DS18B20温度传感器扩展实验之设计一个智能温控系统

本文是关于DS18B20温度传感器的一个扩展实验。 文章目录 一、相关元件介绍二、实验分析三、proteus原理图设计四、软件设计 本扩展实验实现的功能:利用DS18B20设计一个智能温度控制系统,具有温度上下限值设定。当温度高于上限值时,电机开启&a…

BDTC2023:CloudberryDB开源创新与实践

中国大数据技术大会(BDTC)由中国计算机学会(CCF)创立于2008年,已经成为国内外极具行业实践的专业大数据交流平台。12月22日-24日,第十七届中国大数据技术大会(BDTC 2023)在广州举行。…

创建加密分区或者文件

文章目录 [GParted 中已清除的分区与未格式化的分区](https://superuser.com/questions/706624/cleared-vs-unformatted-partition-in-gparted)创建加密分区解密创建的加密分区以便挂载格式化设备未具体的格式(这里为ext4格式)创建挂载点目录挂载加密的文…

多值类别特征加入CTR预估模型的方法

欢迎关注公众号:数据运营入表资产化服务 获取更多算法源码材料 2023数据资源入表白皮书,推荐系统源码下载-CSDN博客 用友BIP数据资产入表解决方案白皮书,推荐系统源码下载-CSDN博客 我们都知道一般单值类别特征加入到CTR预估模型的方法是先…

安装Node修改Node镜像地址搭建Vue脚手架创建Vue项目

1、安装VSCode和Node 下载VSCode Visual Studio Code - Code Editing. Redefined 下载Node Node.js (nodejs.org) 检验是否安装成功,WinR,输入cmd命令,使用node -v可以查看到其版本号 2、修改镜像地址 安装好node之后,开始修改镜像地址 …

如何实现内部产品权限集成

当前我国各领域正在加速向数字化、移动化、智能化发展,大力投入信息化建设与数字化转型已成为企业的共识,而企业门户系统是企业信息化系统建设是一个重要支撑,以企业业务系统为基础,搭建门户系统作为统一入口和应用中心可以有效支…

ssrf之dict协议和file协议

1.dict协议 dict是什么协议呢? 定义:词典网络协议,在RFC 2009中进行描述。它的目标是超越Webster protocol,并允许客户端在使 用过程中访问更多字典。Dict服务器和客户机使用TCP端口2628。 官方介绍:http://dict.o…

计算机毕业设计 基于SpringBoot的高校危化试剂仓储管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

iPhone 13 Pro 更换『移植电芯』和『超容电池』体验

文章目录 考虑换电池Ⅰ 方案一Ⅱ 方案二 总结危险 Note系列地址 简 述: 首发买的iPhone 13P &#xff08;2021.09&#xff09;&#xff0c;随性使用一年出头&#xff0c;容量就暴跌 85%&#xff0c;对比朋友一起买的同款&#xff0c;还是95%。这已经基本得一天两充 >_<&a…

【计算机视觉】角点检测(Harris、SIFT)

Harris 角点指的是窗口延任意方向移动&#xff0c;都有很大变化量的点。 用数学公式表示为&#xff1a; E(u,v)反映的移动后窗口的差异&#xff0c;w(x,y)为每个像素的点权值&#xff0c;I(xu,yv)是移动的像素值&#xff0c;I(x,y)是移动前的像素值。 将E(u,v)进行泰勒展开&am…

基于Spring Cloud + Spring Boot的企业电子招标采购系统源码

随着企业的快速发展&#xff0c;招采管理逐渐成为企业运营中的重要环节。为了满足公司对内部招采管理提升的要求&#xff0c;建立一个公平、公开、公正的采购环境至关重要。在这个背景下&#xff0c;我们开发了一款电子招标采购软件&#xff0c;以最大限度地控制采购成本&#…

智能硬件(8)之蜂鸣器模块

学好开源硬件&#xff0c;不仅仅需要会编程就可以了&#xff0c;电路基础是很重要的&#xff1b;软件和硬件都玩的溜&#xff0c;才是高手&#xff0c;那么小编为了方便大家的学习&#xff0c;特别画了一块智能传感器板子&#xff0c;来带领大家学习电路基础&#xff0c;玩转智…

C# WPF上位机开发(WebApi联调)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多时候&#xff0c;客户需要开发的不仅仅是一个上位机系统&#xff0c;它还有其他很多配套的系统或设备&#xff0c;比如物流小车、立库、数字孪…

【电子通识】开关的种类

开关在我们日常生活与工作中使用较多。开关有无数种形式&#xff0c;种类繁多。从微小的按钮到巨大的控制器&#xff0c;功能多种多样。这种多样性受到机械或电气操作、手动或电子控制等因素的影响&#xff0c;并且与个人在设计美学和用户界面方面的偏好也有关。 电子开关采用 …

Hadoop安装笔记2单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

紧接着上一篇博客&#xff1a;Hadoop安装笔记1&#xff1a; Hadoop安装笔记1单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2&#xff1a;离线数据处理-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/135…

SSL VPN移动安全接入策略

一、登陆策略 1、需求背景&#xff08;【系统设置】-【系统选项】&#xff09; 需求&#xff1a; &#xff08;1&#xff09;接入端口可以自定义且支持HTTP 端口跳转到HTTPS端口 &#xff08;2&#xff09;登录页面自持自定义背景、logo等 &#xff08;3&#xff09;登…