机器学习简介

article/2025/8/25 3:15:07

本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi

注:   因为要用到机器学习工具箱,所以至少需要安装MATLAB2017a的版本,版本越高越好,最好是2021版本的。此篇文章旨在介绍机器学习的实际应用,所以对算法的原理介绍可能会不是很清楚,想了解清楚的可以看看B 站吴恩达(稍简单一点)、李宏毅老师的视频,也可以看周志华老师的西瓜书《机器学习》(B站有配套视频),注重实用的话就看B 站的菜菜的机器学习sklearn、唐宇迪的机器学习视频。

目录

一、  概念

二、 机器学习的划分

 2.1 监督学习

2.2 无监督学习

2.3 强化学习

 2.4 半监督学习

三、 模型评估指标

3.1 回归问题(预测问题)的评估指标

 3.2 分类问题的评估指标

四、 模型的泛化能力

4.1 留出法

4.2 交叉验证

 4.3 选择最好的模型

 4.4 欠拟合和过拟合


一、  概念

       通过一个问题引入:夏天你是怎么买到一个好的西瓜的?你是通过自己的经验来购买西瓜的吧,经验又是通过自身长期以来对西瓜知识的累积来的把。比如:好西瓜有三个指标:色泽青绿、根蒂蜷缩、敲声浑浊,你就通过这三个指标来判断好西瓜,这是靠人类自己就能够完成的。而机器学习就是这样一个过程,它通过对以往数据(这里可以指上面的经验)的训练,在面对新的情况时,做出判断(这里可以指上面的判断瓜的好坏)。

二、 机器学习的划分

       机器学习包括监督学习,无监督学习,强化学习,半监督学习,主动学习。

 2.1 监督学习

       定义:既有x也有y。

      监督学习根据y的不同,可以分为分类问题和回归问题(预测问题)。 

      ①分类问题:将西瓜分为好瓜和坏瓜、将肿瘤分为良性和恶行。

      ②回归问题(预测问题):预测股票涨跌、预测房价。

2.2 无监督学习

       定义:只有x 没有y。我们需要得到数据之间隐藏的规律。

       无监督学习常用于聚类和降维。

       ①聚类:根据数据将这些数据划分成几类(类似于我之前写的聚类模型文章)。

         注:这里说明一下聚类和分类的区别,分类是事先就知道要将这些数据分成几类,而聚类是不知道要划分成几类,聚类划分的类别需要我们通过聚类的最终结果自己来定义。

       ②降维:给定的数据的指标太多了,处理起来不方便,通过对数据进行降维,得到了几个指标,这几个指标能够反映之前全部指标的大部分信息。

2.3 强化学习

 2.4 半监督学习

        定义:有x也有y,但y有一部分没有。

三、 模型评估指标

        从现在开始,只介绍监督学习,即回归问题和分类问题

3.1 回归问题(预测问题)的评估指标

        这些指标都有优缺点,到时候网上搜索就行。

 3.2 分类问题的评估指标

       我们定义下面这四个指标:

         在机器学习中,通常将更关注的事件定义为正类(生活中我们通常将关注那些结果不好的情况定义为正类,比如:肿瘤的恶性、股票的下跌),负类则相反。

         当然,这种定义也不是绝对的,你若更加关注股票的上涨,也可将上涨定义为正类,也比如将猫和狗的照片进行分类,你也无法定义,此时你就可以随便定义一个就好。   

        将这四个指标构成一个混淆矩阵:

        

         由这个矩阵可以看出,预测对了TP+TN=6个,预测错了FP=FN=4个。  

         现在就定义下面这些指标:

  

四、 模型的泛化能力

       将模型对于未知数据的预测能力定义为模型的泛化能力。

       通过下面这些方法可以知道模型的泛化能力到底好不好。

4.1 留出法

        将已知的数据(这里指既知道x 又知道y的数据)分成两部分,一部分通过训练可以得到一个模型,再将另一部分数据的x 放入到这个模型中进行测试,然后预测y,这时候再将预测出来的y与真实的y 进行对比,这时候我们就可以知道这个模型的好坏。这里我们将训练的数据定义为训练集,被测试的数据定义为测试集。这种对泛化能力进行评估的能力称为留出法。

        留出法的缺点:当训练集过少时,我们得到的模型并不准确,同时,我们会损失作为测试集的这一部分数据。

4.2 交叉验证

         交叉验证的主要思想就是下面这个图:

               我对于这个的理解:将所有知道x,y的数据拿出k-1个数据来作训练集,剩下的一个拿来作测试集,就这样,进行K次测试和训练,选取最优的一次,在上面这张图中,K取的是10(通常K都是取10),我们就称之为10折交叉验证。

        

 4.3 选择最好的模型

        

 4.4 欠拟合和过拟合

          可能产生过拟合的常见原因:
(1) 模型中参数设置的过多导致模型过于复杂
(2) 训练集的样本量不够
(3) 输入了某些完全错误的的特征 

          解决过拟合的方法:
(1) 通过前面介绍的交叉验证的方法来选择合适的模型,并对参数进行调节。
(2) 扩大样本数量、训练更多的数据
(3) 对模型中的参数增加正则化(即增加惩罚项,参数越多惩罚越大)
          欠拟合则和过拟合刚好相反,我们可以增加模型的参数、或者选择更加复杂的模
型; 也可以从数据中挖掘更多的特征来增加输入的变量, 还可以使用一些集成算法(如
装袋法(Bagging),提升法(Boosting))。
       (注意:有可能模型的输入和输出一点关系都没有,举个极端的例子,你买的西
瓜好坏和你的个人特征没任何关系,例如你的性别身高体重等)


http://chatgpt.dhexx.cn/article/fp4s16ro.shtml

相关文章

python机器学习视频教程百度网盘下载(2023完整版)

文末扫码领资料全套学习路线图和 视频及配套资料 在Python中有很多机器学习的模块,比如Sklearn、Tensorflow、Caffe等,可以很方便地调用一些机器学习的算法。如果你对Python机器学习感兴趣,python机器学习教程哪个好?这份python机…

吴恩达机器学习课程资源(笔记、中英文字幕视频、课后作业,提供百度云镜像!)

强烈感谢黄海广博士给的文章思路 本文中提及的作者便是黄海广博士本人 吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,作者在github开源了吴恩达机器学习个人笔记,用python复现了课程作业,成为热门项目&am…

机器学习视频教程

1. Hadoop—Spark企业应用实战(推荐版) 链接:http://pan.baidu.com/s/1eSJsUTc 密码:q5lt 2. 西安交大应用统计分析SPSS1-48讲 链接:http://pan.baidu.com/s/1slSzYHJ 密码:8twg 3. Python科学计算 链接:http://pa…

机器学习必看的28个视频

想自学机器学习和深度学习?不妨边看专家讲解视频边自学。不仅能感受世界各地专家的熏陶,也能快速获取知识,一举两得。这篇文章整理了一个 YouTube 视频列表,供希望在该领域学习的朋友使用。 转自: http://easygeek.com.cn/articl…

struct timespec 和 struct timeval

转自&#xff1a;http://www.cnblogs.com/book-gary/p/3716790.html time()提供了秒级的精确度 . 1、头文件 <time.h> 2、函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒数 用time()函数结合其他函数&#xff08;如&#xff1a;lo…

time.Timer

文章目录 前言一、代码二、DB三、效果 前言 今天观摩前辈的代码,看到time.Timer的使用,发现对于定时任务可以这样做达到js的setInterval()效果 一、代码 package mainimport ("fmt""gorm.io/driver/postgres""gorm.io/gorm""gorm.io/gorm…

软件测试之性能测试面试题合集(含答案分析细节)

前言 最近这一年&#xff0c;对性能测试有了更多的认知。 压力、强度测试&#xff1a;在一定软硬件环境下&#xff0c;通过高负载的手段来使服务器资源&#xff08;强调服务器资源&#xff0c;硬件资源&#xff09;处于极限状态&#xff0c;测试系统在极限状态下长时间运行是…

2023最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;毕…

软件测试面试必杀篇:【2023软件测试面试八股文宝典】

800道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、App测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

【面经】2023年软件测试面试题大全(持续更新)附答案

整理了一些软件测试方面的资料、面试资料&#xff08;接口自动化、web自动化、app自动化、性能安全、测试开发等&#xff09;&#xff0c;有需要的小伙伴可以文末关注我的VX公众号&#xff0c;无套路自行领取~ 前阵子一位读者告诉我&#xff0c;某位大厂HR给他发了我之前做的面…

软件测试常考面试题-软件测试面试宝典(一篇足矣)

软件测试常考面试题-软件测试面试宝典_MJ813的专栏-CSDN博客&#xff0c;对原文进行整理 扫码关注每日思悟&#xff1a; 介绍解决锻炼思维问题的思路和方法&#xff0c;从不同角度分析问题&#xff0c;让思维变强大&#xff0c;变宽广的同时在测试方面进行学习和方法的拓展&a…

2022最新整理软件测试常见面试题附答案

包含的模块&#xff1a; 本文分为十九个模块&#xff0c;分别是&#xff1a;软件测试 基础、liunx、MySQL、web测试、接口测试、APP测试 、管理工具、Python、性能测试、selenium、lordrunner、计算机网络、组成原理、数据结构与算法、逻辑题、人力资源需要的可以找我获取&…

软件测试的常用的面试题【带答案】

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫XXX&#xff0c;今年24岁&#xff0c;来自XX&#xff0c;就读专业是电子商务&#xff0c;毕业后就…

十道必问的软件测试面试题(含答案解析)

前言 &#xff08;第一个就刷掉一大批人&#xff09; 有很多“会自动化”的同学来咨询技术问题&#xff0c;他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。 一般我都会问&#xff1a;你是定位不到吗&#xff1f;通常结果都是说确实定位不到。 做自…

软件测试最全面试题及答案整理(2022最新版)

目录 1、你的测试职业发展是什么? 2、你认为测试人员需要具备哪些素质 3、你为什么能够做测试这一行 4、测试的目的是什么? 5、测试分为哪几个阶段? 6、单元测试的测试对象、目的、测试依据、测试方法? 7、怎样看待加班问题 8、结合你以前的学习和工作经验&#xf…

软件测试面试——常见的面试问题总结(大全)

目录 1.软件测试级别&#xff1f; 2.软件测试类型&#xff1f; 3.测试方法&#xff1a;动态测试、静态测试&#xff1b;黑盒测试、白盒测试、灰盒测试。 、黑盒测试方法&#xff1a; 3、白盒测试方法&#xff1a; 4.alpha测试和beta测试的区别 5.测试设计方法&#xff1…

2021年软件测试面试题大全

目录 一、面试基础题 简述测试流程: 什么是软件测试&#xff1f;软件测试的目的与原则 问&#xff1a;软件生存周期及其模型是什么&#xff1f; 什么是软件质量&#xff1f; 自动化测试脚本开发的主要步骤: 目前主要的测试用例设计方法是什么&#xff1f; 常见的测试用例…

软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;…

软件测试面试题(全)

1.B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&#xff0c;可以实现跨平台&#xff0c;客户端零维护&#xff0c;维护成本低&#xff0c;但是个性化能力低&#xff0c;响应速度较慢C/S响应速度快&#xff0c;安全性强&#xff0c;一般应用于局域网中&#xff0c;因…

软件测试总结——常见的面试问题(一)

1.软件测试级别&#xff1f; 单元测试&#xff1a;单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位&#xff1a;模块。Findyou又称为模块测试&#xff0c;一个单元测试是用于判断某个特定条件&#xff08;或者场景&…