二分类问题

二分类问题示例:

首先我们从一个问题开始说起,这里有一个二分类问题的例子,假如你有一张图片作为输入,比如这只猫,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果(这也就是著名的cat和non cat问题)。现在我们可以用字母y来表示输出的结果标签,如下图所示:

我们来看看一张图片在计算机中是如何表示的,为了保存一张图片,需要保存三个矩阵(矩阵的概念,一定要清楚,不清楚的需要去看看线性代数了,补充下),它们分别对应图片中的红、绿、蓝三种颜色通道,如果你的图片大小为64x64像素,那么你就有三个规模为64x64的矩阵,分别对应图片中红、绿、蓝三种像素的强度值。为了便于表示,这里我画了三个很小的矩阵,注意它们的规模为5x4 而不是64x64,如下图所示:

为了把这些像素值放到一个特征向量(这个是重点,特征向量!这个是后面很多神经网络的核心思维!)中,我们需要把这些像素值提取出来,然后放入一个特征向量x。为了把这些像素值转换为特征向量 x,我们需要像下面这样定义一个特征向量 x 来表示这张图片,我们把所有的像素都取出来,例如255、231等等,直到取完所有的红色像素,接着最后是255、134、…、255、134等等,直到得到一个特征向量,把图片中所有的红、绿、蓝像素值都列出来。(可以想象成把所有画素值并成一列或者一排,这里最好理解成一列,因为后续的思路是按列来看的),如果图片的大小为64x64像素,那么向量 x 的总维度,将是64乘以64乘以3,这是三个像素矩阵中像素的总量。

在这个例子中维度为12,288。现在我们用n_x=12,288,来表示输入特征向量的维度,有时候为了简洁,我会直接用小写的n来表示输入特征向量x的维度。所以在二分类问题中,我们的目标就是习得一个分类器,它以图片的特征向量作为输入,然后预测输出结果y为1还是0,也就是预测图片中是否有猫:

接下来我们说明一些在余下课程中,需要用到的一些符号。

符号定义 :

x:表示一个n_x维数据,为输入数据,维度为(n_x,1);

y:表示输出结果,取值为(0,1)(取值问题,一定要注意,这个是后期输出值的把控重点!)

(x^(i),y^(i))(代表x的(i)上标,y的(i)上标):表示第i组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;

X=[x^(1),x^(2),...,x^(m)]:表示所有的训练数据集的输入值,放在一个 n_x×m的矩阵中,其中m表示样本数目;

Y=[y^(1),y^(2),...,y^(m)]:对应表示所有训练数据集的输出值,维度为1×m。

此处方便理解,特意截图出来,希望能了解!

用一对(x,y)来表示一个单独的样本,x代表n_x维的特征向量,y 表示标签(输出结果)只能为0或1。 而训练集将由m个训练样本组成,其中(x^(1),y^(1))表示第一个样本的输入和输出,(x^(2),y^(2))表示第二个样本的输入和输出,直到最后一个样本(x^(m),y^(m)),然后所有的这些一起表示整个训练集。有时候为了强调这是训练样本的个数,会写作M_train,当涉及到测试集的时候,我们会使用M_test来表示测试集的样本数,所以这是测试集的样本数:

最后为了能把训练集表示得更紧凑一点,我们会定义一个矩阵用大写X的表示,它由输入向量x^(1)、x^(2)等组成,如下图放在矩阵的列中,所以现在我们把x^(1)作为第一列放在矩阵中,x^(2)作为第二列,x^(m)放到第m列,然后我们就得到了训练集矩阵X。所以这个矩阵有m列,m是训练集的样本数量,然后这个矩阵的高度记为n_x,注意有时候可能因为其他某些原因,矩阵X会由训练样本按照行堆叠起来而不是列,如下图所示:x^(1)的转置直到x^(m)的转置,但是在实现神经网络的时候,使用左边的这种形式,会让整个实现的过程变得更加简单

现在来简单温习一下:X是一个规模为n_x乘以m的矩阵,当你用Python实现的时候,你会看到X.shape,这是一条Python命令,用于显示矩阵的规模,即X.shape等于(n_x,m),X是一个规模为n_x乘以m的矩阵。所以综上所述,这就是如何将训练样本(输入向量X的集合)表示为一个矩阵。

那么输出标签y呢?同样的道理,为了能更加容易地实现一个神经网络,将标签y放在列中将会使得后续计算非常方便,所以我们定义大写的Y等于y^(1),y^(2),...,y^(m),所以在这里是一个规模为1乘以m的矩阵,同样地使用Python将表示为Y.shape等于(1,m),表示这是一个规模为1乘以m的矩阵。

链接:https://www.jianshu.com/p/91a683e38172

原文地址:https://www.cnblogs.com/xiaojingjingzhuanshu/p/12100952.html

时间: 2024-10-12 08:44:16

二分类问题的相关文章

matlab 实现感知机线性二分类算法(Perceptron)

感知机是简单的线性分类模型 ,是二分类模型.其间用到随机梯度下降方法进行权值更新.参考他人代码,用matlab实现总结下. 权值求解过程通过Perceptron.m函数完成 function W = Perceptron(X,y,learnRate,maxStep) % Perceptron.m % Perception Learning Algorithm(感知机) % X一行为一个样本,y的取值{-1,+1} % learnRate:学习率 % maxStep:最大迭代次数 [n,m] =

【机器学习具体解释】SVM解二分类,多分类,及后验概率输出

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885 CSDN?勿在浮沙筑高台 支持向量机(Support Vector Machine)以前在分类.回归问题中非常流行.支持向量机也称为最大间隔分类器,通过分离超平面把原始样本集划分成两部分. 首先考虑最简单的情况:线性可分支持向量机.即存在一个超平面能够把训练样本分开. 1.线性可分支持向量机 1.考虑一个线性二分类的问题:例如以下左图,在二维平面上有两种样本点x

【机器学习详解】SVM解二分类,多分类,及后验概率输出

转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/51073885 CSDN?勿在浮沙筑高台 支持向量机(Support Vector Machine)曾经在分类.回归问题中非常流行.支持向量机也称为最大间隔分类器,通过分离超平面把原始样本集划分成两部分. 首先考虑最简单的情况:线性可分支持向量机,即存在一个超平面可以把训练样本分开. 1.线性可分支持向量机 1.考虑一个线性二分类的问题:如下左图,在二维平面上有二种样本点x,目

Spark 多项式逻辑回归__二分类

package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{LogisticRegression, LogisticRegressionModel} import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator import org.apache.spark.ml.feature

Spark 二项逻辑回归__二分类

package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.{BinaryLogisticRegressionSummary, LogisticRegression, LogisticRegressionModel} import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator i

tensorflow实现svm iris二分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)

iris二分类 # Linear Support Vector Machine: Soft Margin # ---------------------------------- # # This function shows how to use TensorFlow to # create a soft margin SVM # # We will use the iris data, specifically: # x1 = Sepal Length # x2 = Petal Width

基于TextCNN的情感二分类

0. Cause I just wanna wake up in the fleeting light 0.1 アイスクリームみた溶けそう.その瞳にみつめられたなら 新论文方向想好了,一个改进的TextCNN应用实例吧.数据集来源于学长之前打比赛时官方发的2G数据包,大概达到的效果就是通过用户短评去给某个景点的旅行指标进行打分.当然会有一个疑问,在我们现实的应用场景中不都是用户进行打分吗.但这里我要做的是对短评的深层语义进行挖掘,然后得出打分(无奈,为了写论文而写),其实确实没有什么意义,但是自

用二项逻辑斯蒂回归解决二分类问题

逻辑斯蒂回归: 逻辑斯蒂回归是统计学习中的经典分类方法,属于对数线性模型.logistic回归的因变量可以是二分类的, 也可以是多分类的 基本原理 logistic 分布 折X是连续的随机变量,X服从logistic分布是指X具有下列分布函数和密度函数: 其中为位置参数,为形状参数.与图像如下,其中分布函数是以为中心对阵,越小曲线变化越快 二项logistic回归模型: 二项logistic回归模型如下: 其中是输入,输出,W称为权值向量,b称为偏置, 是w和x的内积 参数估计 ? 假设: ?

【火炉炼AI】深度学习005-简单几行Keras代码解决二分类问题

[火炉炼AI]深度学习005-简单几行Keras代码解决二分类问题 (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2, Keras 2.1.6, Tensorflow 1.9.0) 很多文章和教材都是用MNIST数据集作为深度学习届的"Hello World"程序,但是这个数据集有一个很大的特点:它是一个典型的多分类问题(一共有10个分类),在我们刚刚开始接触深度学习时,我倒是觉得

计算二分类的特异性和灵敏度

考虑一个二分类的情况,类别为1和0,我们将1和0分别作为正类(positive)和负类(negative),则实际分类的结果有4种,表格如下(混淆矩阵): 真实情况 预测结果 正例 反例 正例 TP(真正例) FN(假反例) 反例 FP(假正例) TN(真反例) 敏感性Sensitivity (Sen): Sen=TP/(TP+FN)*100% 特异性 Specificity (Spe) spe=TN/(TN+FP)*100% https://www.baidu.com/link?url=mIa