12

让我们学习癌症分类的基本原理–Logistic回归

 3 years ago
source link: https://panchuang.net/2021/06/22/%e8%ae%a9%e6%88%91%e4%bb%ac%e5%ad%a6%e4%b9%a0%e7%99%8c%e7%97%87%e5%88%86%e7%b1%bb%e7%9a%84%e5%9f%ba%e6%9c%ac%e5%8e%9f%e7%90%86-logistic%e5%9b%9e%e5%bd%92/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在这篇文章中,让我们揭开所有关于癌症检测的炒作的神秘面纱,或者检测一张图片是由狗还是猫组成的,或者甚至是检测你上周收到的邮件:“嘿,你中了彩票”是不是垃圾邮件。从根本上说,所有这些问题陈述都可以大致归类为“分类之下”。这些类型的问题是非常令人兴奋的,因为你可以在分类领域找到的问题集范围是巨大的,它们非常有趣,给你解决这些问题的兴奋感,并希望有这样的感觉:“是的,我的算法可以在MRI图像中检测到肿瘤”。

像往常一样,让我们从头开始研究这个算法。我将向您介绍假设表示法、激活函数、成本函数、优化算法。有很多要讲的,抓起一杯咖啡或你最喜欢的饮料通读吧!

什么是Logistic回归?

Logistic回归是一种将数据分类为离散结果的方法。例如,我们可以使用逻辑回归来将电子邮件分类为垃圾邮件或非垃圾邮件。当我说:“离散的结果”是什么意思?-当你必须预测一个离散的班级间隔的值的时候。也就是说,在癌症检测的情况下,您可以预测两个不同的类别。病人要么被诊断出患有癌症,要么没有。这里在我们的班级间隔中只有两个值。A是,或者否。积极或消极。对或错。1或0。难怪,这两个比特已经统治了所有的计算机科学和电子学。

为了尝试分类,我们可以使用Logistic回归,并将所有大于0.5的预测映射为1,将所有小于0.5的预测映射为0,以表示一个二进制。然而,这种方法并不是在机器学习问题的所有情况下都能很好地工作。我们需要设计出比那更好的东西。分类与回归的特例类似,不同之处在于,在这种情况下,我们感兴趣的是将给定数据点分类为离散类,即{0,1,2…n}。现在让我们定义一下假设函数。

假设函数表示法

在这里,我们处理的是二分类,我们需要对假设函数进行建模,以便取值并严格预测介于0和1之间的结果。预测大于1或小于0是没有意义的。为了解决这个问题,有一个经典函数可以在0到1之间映射您的输入。这就是Sigmoid函数,在深度学习的上下文中也称为激活函数。

可视化功能总是有帮助的。下面是上述表达式的表示形式:

很明显,上述函数的输入越大,函数的输出就越趋于1。记住,当x趋于正无穷大时,函数g(X)趋于1,反之亦然。现在,利用这一点,我们将按如下方式定义假设函数:

但是所有这些在我们的例子中是如何工作的呢?-X代表一个向量,代表你选择的特定问题陈述的特征,并与优化的θ值相乘。现在,当您将此结果传递到Sigmoid函数中时-您将得到一个值的向量,每个值代表介于0和1之间的概率。值越低,越接近类“No”,值越高,越接近类“Yes”。就这么简单。听起来不错吧?现在,让我们来讨论一下决策界限。

让我们以有趣的方式了解这一点。假设您要加入一家新机构。他们在你加入之前会进行几次测试,并根据你的得分-他们将决定你是否加入。让我们把那些被录取的称为“录取”,而那些没有被录取的称为“未被录取”。你有一些被录取的学生的数据点,这些数据点以前没有基于他们的分数,然后你画出了它们。它看起来是这样的:

现在,您可以看到决策边界在您可以将其可视化时是多么重要了。一旦您有了您训练的算法的决策边界,您就可以根据对新数据点的直观推断得出结论。在上述情况下,我们的算法已经获得了线性决策边界-当数据相当分散时,该边界无疑也可以是非线性的。也就是说,您可以将非线性复函数输入到Sigmoid函数。但是,如果处理不当,这将带来一个权衡-过度适应的问题。稍后会详细介绍这一点。

我们不想使用与线性回归相同的成本函数,因为Logistic函数会导致输出波动,导致许多局部最优。换句话说,它不会是一个凸函数。相反,我们的Logistic回归成本函数如下所示:linear regression

请注意,对于一个简单的IF/ELSE条件,我们可以选择根据变量“y”来定义该特定训练示例的成本函数。当该训练示例的值/输出属于类别“1”、“True”、“Yes”、“Cancer”或任何正数时,我们将成本定义为假设函数的负对数。当它是“0”、“否”、“阴性”或“非癌症”时,它是从假设中去掉的一个人的负对数。如果所有这些听起来都很复杂,有一个巧妙的技巧可以简化这一点:

您可以如上所述在一行中定义成本函数。我们以这样的方式使用变量y,只要它是1,右边的值(1-y)将使乘数无效,并使成本函数特定于正例。当y为0时,在另一种情况下也是如此。让我们想象一下这两种情况下的成本:

当输出值为1时,我们会看到每当假设输出值接近零时-那就是您的算法出错的时候。这就是成本应该上升的时候,你也可以在图表中看到。

类似地,当您将训练示例的输出设置为零,并且您的假设也产生趋于零的值时,您就可以确定您的算法运行良好。从图表中可以明显看出,成本也应该是零。

梯度下降算法的一般形式如下,我们也将对此算法使用相同的形式。

如果您不确定这是如何工作的,请转到我的另一篇文章-机器学习简介,我在其中详细讨论了这个优化算法,让您深入了解它是如何在包含等高线图的情况下实际工作的。Introduction to Machine Learning

Logistic回归在行动中的应用

就是这样,如果你已经走到了这一步-祝贺你,并拍拍你自己的背!现在,您可以使用上面学到的概念实现二进制分类。选择任何编程语言并实现上述内容,您就应该可以启动并运行Logistic回归了!我们已经介绍了分类的基本原理-问题陈述,重新定义了假设函数,学习了经典的Sigmoid函数,了解了成本函数是如何工作的,最重要的是,您应该能够根据成本图来调试算法的性能。

这只是你进入分类世界之旅的开始。在这里你可以做很多事情。很多外行人认为是超级大国的很酷的东西。从自动驾驶汽车到潜在的癌症检测。通过这些,您还间接了解了神经网络-一种最先进的深度学习算法。我计划很快写更多关于他们的文章。

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/22/%e8%ae%a9%e6%88%91%e4%bb%ac%e5%ad%a6%e4%b9%a0%e7%99%8c%e7%97%87%e5%88%86%e7%b1%bb%e7%9a%84%e5%9f%ba%e6%9c%ac%e5%8e%9f%e7%90%86-logistic%e5%9b%9e%e5%bd%92/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK