Machine Learning - 笔记1
1.回归(regression)
①按我的理解来说,就是对于训练模型所用到的数据集,能够知道Input和Output的特征。比如,预测未来房价,我们给定了(房屋大小,房屋价格)这样一个形式的训练数据,给到模型完成训练后,我们再利用模型来对某一房屋的价格进行预测并得到一个预测结果。所以,回归模型即我们知道输入的数据有什么特征(房屋大小,房屋价格),以及我们要哪种结果类型的数据(房屋大小,预测价格)。
上面的例子中(房屋大小,房屋价格)相当于二维形式的数据,我们会将上面的“房屋大小” 用 \(x\) 表示,房屋价格用 \(y\) 表示,即 \((x,y)\),然后预测结果用 \(\hat y\) 来表示。
②函数模型:寻找一个函数 \(f\) 可以计算出一条最佳拟合曲线,使得我们的训练数据尽可能多地被曲线覆盖或靠近曲线。
下面是一个例子,比如函数模型:\(f(x) = wx + b\)。其中 \(w\) 和 \(b\) 也叫做系数或权重
③代价函数:
首先,为什么会有代价函数?因为当我们的函数模型受到 \(w\) 和 \(b\) 的影响,即不同的 \(w\) 和 \(b\) 会得到一个不同的函数模型 \(f\) ,所以我们会试图寻找 \(w\) 和 \(b\) ,使得函数模型得到的曲线,能够尽可能覆盖或靠近训练数据集。因此,我们可以用 \(J(w,b)\) 来表示一个代价函数,即:$$J(w,b)=\sum_{i=0}^n \frac{1}{2n} * (\hat y - y)^2 $$
那么这个函数的意义是什么?
上方提到了 \(f\) 是尽可能覆盖或靠近训练集,所以说明 \(f\) 对应曲线上的点,和实际的训练集中的部分点会存在误差,我们的目的是为了让这个误差尽可能小,即找到一条合适的曲线,让预测数据更加接近实际值。所以,如何找到这条 \(f\) ?通过 \(f(x) = wx + b\) 的例子,我们知道了,通过找到最合适的 \(w\) 和 \(b\) 即可。所以 \(J(w,b)\) 函数的目的,就是通过上方的代价函数,来找到最合适的 \(w\) 和 \(b\) 。
2.分类(classification):按我的理解,我们想要的输出结果不再是一个单一值,而是对数据进行分类。比如:我有关于伤风感冒的几位患者的检查数据,那么我们想要得到的结果不再是某一个预测值,而是想对数据进行分析并分类,比如个人A的数据推测出“患病”,个人B的数据推测出“无病”,此时的数据就有了两种不同的结果,“患病”和“无病”。这即是分类。
1.聚类(clustering):按我的理解,无监督学习是我们不知道Input和Output数据的具体特征。给到我一堆数据集,我事先并不知道这堆数据集的具体特征,比如上方预测房价的例子,我们知道数据是有“房价”和“房屋大小”两种标签,输出结果数据是“预测房价”的标签。而对于无监督学习来说,给定的数据集没有这些标签,即模型不会知道,这堆数据代表“房价”和“房屋大小”,输出数据是“预测房价”。因此,无监督学习相当于让模型自己去对数据集进行分析,找到这些数据集中的关联,进行分类,将数据集划分为一批一批带有相似特征的数据集群。比如:这里有一堆客户的个人数据,模型对数据进行分析,并将提取到的几个特征对客户进行分类,得到了比如喜欢吃蔬菜的客户群体A,喜欢吃肉的客户群体B,讨厌蔬菜的客户群体C。
我的理解,即 $f$ 是一个线性函数的模型就是线性回归模型,比如上方的 $f(x) = wx + b$。
Machine Learning - 笔记1的更多相关文章
- 第五周(web,machine learning笔记)
2019/11/2 1. 表现层状态转换(REST, representational state transfer.)一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相 ...
- Machine Learning笔记整理 ------ (一)基本概念
机器学习的定义:假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E,使其在T中任务获得了性能改善,我们则说关于任务类T和P,该程序对经验E进行了学习(Mitchell, 1997) ...
- machine learning 笔记 normal equation
theta=(Xt*X)^-1 Xt*y x is feature matrix y is expectation
- Machine Learning笔记整理 ------ (五)决策树、随机森林
1. 决策树 一般的,一棵决策树包含一个根结点.若干内部结点和若干叶子结点,叶子节点对应决策结果,其他每个结点对应一个属性测试,每个结点包含的样本集合根据属性测试结果被划分到子结点中,而根结点包含样本 ...
- Machine Learning笔记整理 ------ (四)线性模型
1. 线性模型 基本形式:给定由d个属性描述的样本 x = (x1; x2; ......; xd),其中,xi是x在第i个属性上的取值,则有: f(x) = w1x1 + w2x2 + ...... ...
- Machine Learning笔记整理 ------ (三)基本性能度量
1. 均方误差,错误率,精度 给定样例集 (Example set): D = {(x1, y1), (x2, y2), (x3, y3), ......, (xm, ym)} 其中xi是对应属性的值 ...
- Machine Learning笔记整理 ------ (二)训练集与测试集的划分
在实际应用中,一般会选择将数据集划分为训练集(training set).验证集(validation set)和测试集(testing set).其中,训练集用于训练模型,验证集用于调参.算法选择等 ...
- 《Machine Learning》系列学习笔记之第一周
<Machine Learning>系列学习笔记 第一周 第一部分 Introduction The definition of machine learning (1)older, in ...
- [Machine Learning]学习笔记-Logistic Regression
[Machine Learning]学习笔记-Logistic Regression 模型-二分类任务 Logistic regression,亦称logtic regression,翻译为" ...
- Machine Learning 学习笔记
点击标题可转到相关博客. 博客专栏:机器学习 PDF 文档下载地址:Machine Learning 学习笔记 机器学习 scikit-learn 图谱 人脸表情识别常用的几个数据库 机器学习 F1- ...
随机推荐
- dev DEV控件:gridControl常用属性设置
引用:https://www.cnblogs.com/kingsliu/articles/6145679.html 1.隐藏最上面的GroupPanelgridView1.OptionsView.Sh ...
- Qt Create开发,修改 .Pro 文件改变 exe 的名称
// .pro // 修改 TARGET 就可以改变生成的exe的名称 TARGET = Test // 要是生成的exe名称中需要带有空格,需要用到$$quote TARGET = $$quote( ...
- k8s之基于metallb实现LoadBalancer型Service
一.实验说明 1.介绍 MetalLB 是裸机 Kubernetes 集群的负载均衡器实现,使用标准路由协议,主要用于暴露 K8s 集群的服务到集群外部访问,MetalLB 可以让我们在 K8s 集群 ...
- Keycloak中授权的实现
在Keycloak中实现授权,首先需要了解与授权相关的一些概念.授权,简单地说就是某个(些)用户或者某个(些)用户组(Policy),是否具有对某个资源(Resource)具有某种操作(Scope)的 ...
- python 虚拟环境篇
前言 这个倒是非常之重要. 首先我们知道python通过pip安装,那么我们安装的所有东西都会在我们pip下的配置目录下,这会显得非常臃肿,同样也让我们部署艰难. python虚拟环境,他是这样做的, ...
- MMDeploy部署实战系列【第一章】:Docker,Nvidia-docker安装
MMDeploy部署实战系列[第一章]:Docker,Nvidia-docker安装 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善.如果有那个地方没看懂,评论区问就可以,我给补充. 版权 ...
- 他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧
背景介绍 hi 大家好,我是三合,作为一个非著名懒人,每天上完班回到家,瘫在沙发上一动都不想动,去开个灯我都嫌累,此时,智能家居拯救了我,只需要在手机点点点,开关灯,空调,窗帘就都搞定了,一开始我用的 ...
- portainer安装,配置,使用
Portainer安装 Portainer是Docker容器管理可视化界面,主要是可以通过可视化界面创建,管理Dockert容器,并且支持多个节点管理(免费版支持五个节点). Portainer官网地 ...
- PyQt5编程学习之控件基类QObject深入
一.QObject描述: PyQt几乎所有的类都是从QObject直接或间接继承的,QObject是所有PyQt类的基类,是PyQt对象模型的核心. 二.基类QObject的功能: (一)操作对象名称 ...
- Python编程的若干个经典小技巧
1. 原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: x,y= 10,20 print(x,y) x,y= y,x print(x,y) # ...