机器学习——有监督学习和无监督学习

编程日常/2024/02/08 17:31:50

有监督学习

简单来说,就是人教会计算机学会做一件事。

给算法一个数据集,其中数据集中包含了正确答案,根据这个数据集,可以对额外的数据希望得到一个正确判断(详见下面的例子)

回归问题

例如现在有一个房价数据集,记录了不同面积的房子的实际卖价, 现在用图表表示数据集,横轴表示房子面积,纵轴表示房子的卖价, 图画出来后,可以用一个直线或者曲线去拟合(至于选择直线还是曲线,要看具体的衡量标准),然后现在有一个需求,就是我有一个x平方的房子,想要知道这个房子的卖价, 此时就可以通过在横轴的x位置,找到直线或曲线上对应的纵轴的值y,就可以得到预估卖价。

这个房价问题是个回归问题,回归问题是指:我们想要预测连续的数据输出,即预测的结果是一个连续值,如这里房子卖出的价格就是一个连续值,还有一种类型是分类问题(详见下面),以二分类问题为例,对于某一个样本,它的结果只有两种可能:对或错, 而我们预测某个数据的结果,要么是对要么是错,也就是说结果是离散的 那么对比之下,我们预测某个面积的房子的卖价,卖价可能是一个范围里的任何数字,也就是连续的, 所以回归问题就是某个数据的结果是连续的,不是像分类问题的结果是离散的。

分类问题

例如现在有一组数据集,是不同的肿瘤大小对应它是否是恶性肿瘤(结果只有两种:是或否),现在需要预测肿瘤大小为x的肿瘤,是否是恶性肿瘤,预测的结果为y(是或否),这就是个二分类问题,即答案只有两种。除此之外,还有多分类问题,也就是答案不止两种(但也是有限种类)。

在判断肿瘤是否是恶性的这个问题上,我们判断的标准只有肿瘤大小这一个特征/属性, 而实际中,可能会根据多个特征/属性进行综合判断进而得到结果,上面的房价问题也是如此,我们只根据房屋面积这一个特征进行估价,而实际上肯定还会结合地段、交通等多个特征进行判断。如下面的数据集是根据肿瘤大小和患者年龄两个特征来判断肿瘤的性质。

无监督学习

简单来说,就是让计算机在不用人教的情况下自己学会做一件事

在上述的监督学习中,房价问题中的数据集的每个样本都清楚的知道了它的卖价,在肿瘤问题中的数据集中,每个样本也都被表明为是恶性还是良性。由此可见,在有监督学习中,对于数据集的每个样本,我们都清楚的告知了的正确答案(如肿瘤是恶性还是良性)。

而在无监督学习中,我们给算法一个数据集,不告诉算法这个数据集的每个数据点代表什么,要求算法找出数据的类型结构。

例如,给定一组不同的个体,对于每个个体,检测他们是否拥有某个特定的基因,具体做法就是,运行一个聚类算法,根据个体所拥有的基因把不同的个体归为不同类型的人,这就是无监督学习。因为在给定这些个体时,即给定数据集时,没有事先告知每个个体的类型,只是告诉算法,这里有一堆数据。我不知道这些数据是什么,不知道每个数据的类型,甚至不知道总共有哪些类型,你能自动找出这些数据的结构吗?虽然我事先不知道有哪些类型,但你能按得到的类型把这些个体进行分类吗?因为我们没有把数据集中的正确答案(即每个个体属于什么类型的人)告诉算法,所以这就是无监督学习。

聚类算法

聚类算法是无监督学习算法中的一种,对于给定的数据集,无监督学习算法可能判定数据集包含两个不同的簇,然后把这些数据分为两个不同的簇,这就是聚类算法。

聚类算法的应用举例

  • 市场细分。根据客户信息将客户分为不同的市场群体,进而进行精准销售。我们只拥有全部客户的信息,但是并不知道有哪些市场细分,也不知道某个客户属于哪种市场细分,所以让算法自己从数据中去发现这些
  • 社交网络的分析。可以得知和你联系最频繁的人,判断哪些人可能相互认知等。
  • 新闻分类。将几万条甚至更多的新闻组成不同的新闻专题


https://www.daipet.cn/news/350720.html

相关文章

Android 自定义BaseActivity

直接上代码: BaseActivity代码: package com.example.custom.activity;import android.annotation.SuppressLint;import android.app.Activity;import android.content.pm.ActivityInfo;import android.os.Bundle;import android.os.Looper;impor…

Backtrader 文档学习- Plotting

Backtrader 文档学习- Plotting 虽然回测是一个基于数学计算的自动化过程,还是希望实际通过可视化验证。无论是使用现有算法回测,还是观察数据驱动的指标(内置或自定义)。 凡事都要有人完成,绘制数据加载、指标、操作…

Redis篇之集群

一、主从复制 1.实现主从作用 单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。主节点用来写的操作,从节点用来读操作,并且主节点发生写操作后,会把数据同…

设计师又被前端借一步说话,我偷听了下,这次事不能小。

核心问题还是前端效果的可实现性。 设计师在设计过程中应该考虑前端效果的可实现性。设计师与前端开发人员之间的紧密合作是确保设计能够顺利实现的关键。 考虑前端效果的可实现性可以带来以下好处: 提高开发效率:设计师了解前端技术的限制和能力&amp…

数据结构红黑树

红黑树是一种自平衡的二叉搜索树,它通过确保任何从根到叶子的路径上不会有两个连续的红节点并且从根到叶子的所有路径上有相同数量的黑节点,从而近似平衡。这种平衡保证了在最坏情况下插入、删除、查找操作都能在O(log n)时间复杂度内完成。 下面&#…

贪心算法入门题(算法村第十七关青铜挑战)

青铜挑战:贪心其实很简单 贪心算法(贪婪算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择,从而希望能够导致结果是最好或者最优的算法。 贪心算法要么得到最优解,要么得到近似最优解…

Vue CLI学习笔记

在看任何开源库的源码之前,必须先了解它有哪些功能,这样才能针对性地分模块阅读源码。 Vue CLI 简介 Vue CLI是Vue.js的官方命令行工具,它是一个基于Vue.js进行快速开发的完整系统。 通过Vue CLI,开发者可以快速搭建和开发Vue.js项…

三、设计模式相关理论总结

一、面向对象编程 1.1 概述 简称Object Oriented Program(OOP),指以类或对象作为基础组织单元,遵循封装、继承、多态以及抽象等特性,进行编程。其中面向对象不一定遵循封装、继承、封装和多态等特性,只是前人总结的套路规范&amp…

蓝桥杯刷题day08——完全日期

1、题目描述 如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。 例如:2021年6月5日的各位数字之和为20216516,而16是一个完全平方数,它是4的平方。所以2021年6月5日是一个完全日期。 请问,从200…

【Flink状态管理(二)各状态初始化入口】状态初始化流程详解与源码剖析

文章目录 1. 状态初始化总流程梳理2.创建StreamOperatorStateContext3. StateInitializationContext的接口设计。4. 状态初始化举例:UDF状态初始化 在TaskManager中启动Task线程后,会调用StreamTask.invoke()方法触发当前Task中算子的执行,在…