首页 > 其他分享 >Chapter1 机器学习基础

Chapter1 机器学习基础

时间:2023-04-06 10:35:50浏览次数:38  
标签:机器 变量 样本 Chapter1 目标 学习 算法

机器学习的一些预备知识


何为机器学习?

我的理解是:机器学习就是从海量的数据中找到这些数据背后所蕴含的规律/意义(提取有用的信息)并利用这些信息来解决实际问题的一门学科。

机器学习可以做什么?

人脸识别、垃圾邮件分类、产品推荐、手写数字识别等等

关键术语

img

根据上述的图片解释一下相关术语:
    1. 特征(属性):上述图片中的列(体重(克)、脚蹼、后背颜色、翼展)。 
    2. 实例(样本):上述图片中的每一行。
    3. 训练集(训练样本集):训练样本的集合,上述的图片就是包含六个训练样本的训练集。
    4. 目标变量:机器学习算法预测的结果。如上述图片的种属。需要注意的是:训练样本集必须提前知道目标变量的值,以便于确定特征与目标变量之间的关系。
    5. 类别:分类问题中的目标变量称为类别。
    6. 测试集(测试样本集):测试样本的集合。一般来说,当机器学习的程序开始运行时我们先使用训练集来训练该程序。训练完成后,我们再使用测试集(不提供测试样本的目标变量)来进行测试。之后比较程序预测的目标变量和测试样本的目标变量之间的差异来得出该程序的精确度。
    7. 知识表示:使用了机器学习算法的程序通常都会产生结果。这个结果的形式就是知识表示。(例如:我们可以以概率分布的形式来阐述结果或以规则集的形式来阐述结果)(当然知识表示也可以仅仅是一个样本)

注意:上述案例阐述了机器学习是如何解决分类问题的。

一些概念辨析

1. 什么是监督学习和无监督学习?
    监督学习指的就是先通过训练集(既有特征也有标签)来训练,之后再让机器自己找到特征和目标变量(标签)之间的联系。之后,当存在只有特征而没有目标变量(标签)的样本时,机器可以自行预测出该样本的目标变量(标签)。监督学习分为两种:分类和回归。
        1.1 分类主要针对离散型数据。(目标变量为标称型变量)(标称型变量指变量只在有限目标集中取值)
        1.2 回归主要针对连续型数据。(目标变量为数值型变量)(数值型变量指变量在无限目标集中取值)
    无监督学习指训练集只有特征没有目标变量(标签)。机器通过自行寻找相似特征的样本把它们进行归类。无监督学习常用的算法为聚类算法。

2. 聚类和分类的区别
    聚类和分类最明显的区别就是类别已知/未知。若类别已知就是分类,反之就是聚类。
    分类指的就是机器提取样本的特征来将该样本分到已知的类别。(例如:机器查看动物的图片,提取该动物的特征,进而将该动物分到对应的已知的类别)分类属于有监督学习。
    聚类指的就是机器提取样本的特征,将特征相似的众多样本聚成一类,从而聚成几个类别(需要注意的是:聚类中的类别是未知的,你也不知道最后会聚成几类。而分类当中的类别是已知的)聚类属于无监督学习。

监督学习和无监督学习所用到的算法

img

如何选择合适的算法

1. 想要选择合适的算法,必须要考虑如下两个问题:
    1.1 使用机器学习算法的目的?
    1.2 需要分析和收集的数据是什么?
2. 首先考虑使用机器学习算法的目的。
    If 想要预测目标变量的值,可以选择监督学习算法。
        If 目标变量类型为离散型
            分类算法
        If 目标变量类型为连续型
            回归算法
    If 不想要预测目标变量的值,可以选择无监督学习算法。
        If 将数据划分为离散的组
            聚类算法
            If 还需要估计数据与每个分组的相似程度
                密度估计算法
3. 考虑数据问题
    3.1 特征值是连续型变量还是离散型变量?
    3.2 特征值是否存在缺失值,什么原因缺失?
    3.3 特征值是否存在异常值?
    3.4 某个特征发生的频率如何?

注意:我们只能在一定程度上缩小算法的选择范围。一般并不存在最好的算法或者可以给出最好结果的算法,同时还要尝试不同算法的执行效果。并且如何选择合适的算法这件事并不是固定的,需要具体问题具体分析。

开发机器学习程序的步骤

1. 收集数据
    可以采用很多方法采集数据。包括但不限于:网络爬虫、使用公开可用的数据源等。
2. 准备输入数据
    得到数据之后,需要确保数据格式符合要求和特定算法的要求。
3. 分析输入数据
    数据格式符合要求之后,接下来需要人工分析输入数据。包括但不限于:查看数据是否为空值、异常值以及对于这些值怎么处理。这一步的主要作用就是确保数据集中没有垃圾数据。
4. 训练算法
    分析完输入数据之后,我们需要将数据输入到算法来进行训练。从中抽取知识或信息。得到的知识或信息需要存储为计算机可以处理的形式。方便后续步骤使用。
    注意:这里的训练算法指监督学习。如果是无监督学习因为不存在目标变量值则不需要事先训练,直接测试算法即可。
5. 测试算法
    根据第四步所得到的知识或信息之后,我们需要评估算法的准确率。对于监督学习必须已知评估算法的目标变量值(测试集的目标变量值)。对于无监督学习也必须用其它的评测手段来检测算法的成功率。
6. 使用算法
    将机器学习算法转换为应用程序。检验是否可以在实际环境中正常工作。

标签:机器,变量,样本,Chapter1,目标,学习,算法
From: https://www.cnblogs.com/gao79135/p/17291844.html

相关文章

  • Mysql学习笔记(连载中)
    Mysql01使用CMD连接数据库--在控制台连接数据库(需将位置切换到mysql所在地址)mysql-uroot-ppassword:12345--修改mysql账户密码及权限,安装配置完后慎用updatemysql.usersetauthentication_string=password('12345')whereuser='root'andHost='localhost';......
  • 学习笔记292—docker api是什么
    dockerapi指的是docker的应用程序接口,是软件系统不同组成部分衔接的约定,docker主要有三大对外api:1、DockerRegistryAPI;2、DockerHubAPI;3、DockerRemoteAPI。本教程操作环境:linux5.9.8系统、docker-1.13.1版、DellG3电脑。一、什么是API1.API具体是什么?API这个词在......
  • 一步步制作下棋机器人之 coppeliasim进行Scara机械臂仿真与python控制
    稚晖君又发布了新的机器人,很是强大。在编写时看到了稚晖君的招聘信息,好想去试试啊!小时候都有一个科幻梦,如今的职业也算与梦想有些沾边了。但看到稚晖君这种闪着光芒的作品,还是很是羡慕。以前就想做一个机械臂,实现远程象棋对战等功能,看到稚晖君的作品,更加心动了。心动不如行动,下......
  • Spark学习笔记01
    1、spark程序开发完成后,打包成jar包。如何将jar包分发到spark集群?1、启动集群启动master./sbin/start-master.sh启动worker./bin/spark-classorg.apache.spark.deploy.worker.workerspark://localhost.localdomain:7077提交作业./bin/spark-s......
  • Spring框架学习
    一、第一部分:SpringIoC&DI1.Spring概述1.1Spring是什么(1)Spring是分层的JavaSE/EE应用full-stack轻量级开源框架;(2)Spring以IoC和AOP为内核;InverseOfControl:反转控制AspectOrientedProgramming:面向切面编程(3)提供了展现层SpringMVC和持久层SpringJDBC......
  • Java Stream学习笔记(一)
    JavaStream学习笔记Stream是Java8API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式)。一、特点1、代码简洁:函数式编程写出的代码简洁且意图明确,使用stream接口让你从此告别for循环。2、多核友好......
  • 摸索使用Multisim_v11仿真学习电池组的串、并联_1
     想仿真1个6串8并的电池组(18650电池),这是我第1次摸索使用Multisim仿真软件,虽然这个软件躺在我的硬盘中至少有5年了,但没真正使用过有意义哪怕是简单的仿真仿真串联没问题,仿真并联失败Multisim_v11,无聊没事玩仿真,1.2个18650电池的串联, 仿真并联失败,网上寻求答案说:电池不能直......
  • 转载自团队博客:基于深度学习的人脸识别会议签到系统
    电梯演讲:https://www.bilibili.com/video/BV1kc411W7w4?t=9.9原型:1,主界面  2,会议管理  3,人员管理  4,会议室管理......
  • 【重要】Nginx模块Lua-Nginx-Module学习笔记(三)Nginx + Lua + Redis 已安装成功(非open
    一、目标使用Redis做分布式缓存;使用luaAPI来访问redis缓存;使用nginx向客户端提供服务,ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求。url请求nginx服务器,然后lua查询redis,返回json数据。二、准备工作系统环境:Ubuntu14.0(64位)Redis服务安装:ap......
  • 【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种
    说明:很简单一个在HTTP模块中,而另外一个和HTTP是并列的Stream模块(Nginx1.9.0支持)一、两个模块的最简单配置如下1、HTTP负载均衡:http{includemime.types;default_typeapplication/octet-stream;upstreamlive_node{server127.0.......