精华内容
下载资源
问答
  • 在接下来的文章中,我们将讨论决策树、聚类算法回归,指出它们之间的差异,并找出如何为你的案例选择最合适的模型。 有监督的学习 vs. 无监督的学习 理解机器学习的基础,就是要学会对有监督的学习和无监督的...

    在这篇文章中我将介绍三大类的机器学习算法,针对大范围的数据科学问题,相信你都能满怀自信去解决。

    在接下来的文章中,我们将讨论决策树、聚类算法和回归,指出它们之间的差异,并找出如何为你的案例选择最合适的模型。

    有监督的学习 vs. 无监督的学习

    理解机器学习的基础,就是要学会对有监督的学习和无监督的学习进行分类,因为机器学习中的任何一个问题,都属于这两大类的范畴。

    在有监督学习的情况下,我们有一个数据集,它们将作为输入提供给一些算法。但前提是,我们已经知道正确输出的格式应该是什么样子(假设输入和输出之间存在一些关系)。

    我们随后将看到的回归和分类问题都属于这个类别。

    另一方面,在我们不知道输出应该是什么样子的情况下,就应该使用无监督学习。事实上,我们需要从输入变量的影响未知的数据中推导出正确的结构。聚类问题是这个类别的主要代表。

    为了使上面的分类更清晰,我会列举一些实际的问题,并试着对它们进行相应的分类。

    示例一

    假设你在经营一家房地产公司。考虑到新房子的特性,你要根据你以前记录的其他房屋的销售量来预测它的售价是多少。你输入的数据集包括多个房子的特性,比如卫生间的数量和大小等,而你想预测的变量(通常称为“目标变量”)就是价格。预测房屋的售价是一个有监督学习问题,更确切地说,是回归问题。

    示例二

    假设一个医学实验的目的是预测一个人是否会因为一些体质测量和遗传导致近视程度加深。在这种情况下,输入的数据集是这个人的体质特征,而目标变量有两种:

    1 表示可能加深近视,而 0 表示不太可能。预测一个人是否会加深近视也是一个有监督学习问题,更确切地说,是分类问题。

    示例三

    假设你的公司拥有很多客户。根据他们最近与贵公司的互动情况、他们近期购买的产品以及他们的人口统计数据,你想要形成相似顾客的群体,以便以不同的方式应对他们 - 例如向他们中的一些人提供独家折扣券。在这种情况下,你将使用上述提及的特征作为算法的输入,而算法将决定应该形成的组的数量或类别。这显然是一个无监督学习的例子,因为我们没有任何关于输出会如何的线索,完全不知道结果会怎样。

    接下来,我将介绍一些更具体的算法……

    回归

    首先,回归不是一个单一的监督学习技术,而是一个很多技术所属的完整类别。

    回归的主要思想是给定一些输入变量,我们要预测目标值。在回归的情况下,目标变量是连续的 - 这意味着它可以在指定的范围内取任何值。另一方面,输入变量可以是离散的也可以是连续的。

    在回归技术中,最流行的是线性回归和逻辑回归。让我们仔细研究一下。

    线性回归

    在线性回归中,我们尝试在输入变量和目标变量之间构建一段关系,并将这种关系用条直线表示,我们通常将其称为回归线。

    例如,假设我们有两个输入变量 X1 和 X2,还有一个目标变量 Y,它们的关系可以用数学公式表示如下:

    Y = a * X1 + b*X2 +c

    假设 X1 和 X2 的值已知,我们需要将 a,b 和 c 进行调整,从而使 Y 能尽可能的接近真实值。

    举个例子!

    假设我们拥有著名的 Iris 数据集,它提供了一些方法,能通过花朵的花萼大小以及花瓣大小判断花朵的类别,如:Setosa,Versicolor 和 Virginica。

    使用 R 软件,假设花瓣的宽度和长度已给定,我们将实施线性回归来预测萼片的长度。

    在数学上,我们会通过以下公式来获取 a、b 值:

    SepalLength = a * PetalWidth + b* PetalLength +c

    相应的代码如下所示:

    # Load required packageslibrary(ggplot2)# Load iris datasetdata(iris)# Have a look at the first 10 observations of the datasethead(iris)# Fit the regression linefitted_model <- lm(Sepal.Length ~ Petal.Width + Petal.Length, data = iris)# Get details about the parameters of the selected modelsummary(fitted_model)# Plot the data points along with the regression line ggplot(iris, aes(x = Petal.Width, y = Petal.Length, color = Species)) +
        geom_point(alpha = 6/10) +
        stat_smooth(method = "lm", fill="blue", colour="grey50", size=0.5, alpha = 0.1)


    线性回归的结果显示在下列图表中,其中黑点表示初始数据点,蓝线表示拟合回归直线,由此得出估算值:a= -0.31955,b = 0.54178 和 c = 4.19058,这个结果可能最接近实际值,即花萼的真实长度。

    接下来,只要将花瓣长度和花瓣宽度的值应用到定义的线性关系中,就可以对花萼长度进行预测了。

    逻辑回归

    主要思想与线性回归完全相同。不同点是逻辑回归的回归线不再是直的。

    我们要建立的数学关系是以下形式的:

    Y=g(a*X1+b*X2)

    g() 是一个对数函数。

    根据该逻辑函数的性质,Y 是连续的,范围是 [0,1],可以被解释为一个事件发生的概率。

    再举个例子!

    这一次我们研究 mtcars 数据集,包含 1973-1974 年间 32 种汽车制造的汽车设计、十个性能指标以及油耗。

    使用 R,我们将在测量 V/S 和每英里油耗的基础上预测汽车的变速器是自动(AM = 0)还是手动(AM = 1)的概率。

    am = g(a * mpg + b* vs +c):

    # Load required packageslibrary(ggplot2)# Load datadata(mtcars)# Keep a subset of the data features that includes on the measurement we are interested incars <- subset(mtcars, select=c(mpg, am, vs))# Fit the logistic regression linefitted_model <- glm(am ~ mpg+vs, data=cars, family=binomial(link="logit"))# Plot the resultsggplot(cars, aes(x=mpg, y=vs, colour = am)) + geom_point(alpha = 6/10) +  stat_smooth(method="glm",fill="blue", colour="grey50", size=0.5, alpha = 0.1, method.args=list(family="binomial"))


    如下图所示,其中黑点代表数据集的初始点,蓝线代表闭合的对数回归线。估计 a = 0.5359,b = -2.7957,c = - 9.9183

    我们可以观察到,和线性回归一样,对数回归的输出值回归线也在区间 [0,1] 内。

    对于任何新汽车的测量 V/S 和每英里油耗,我们可以预测这辆汽车将使用自动变速器。这是不是准确得吓人?

    决策树

    决策树是我们要研究的第二种机器学习算法。它们被分成回归树和分类树,因此可以用于监督式学习问题。

    无可否认,决策树是最直观的算法之一,因为它们模仿人们在多数情况下的决策方式。他们基本上做的是在每种情况下绘制所有可能路径的“地图”,并给出相应的结果。

    图形表示有助于更好地理解我们正在探讨的内容。

    基于像上面这样的树,该算法可以根据相应标准中的值来决定在每个步骤要采用的路径。算法所选择的划分标准以及每个级别的相应阈值的策略,取决于候选变量对于目标变量的信息量多少,以及哪个设置可以最小化所产生的预测误差。

    再举一个例子!

    这次测验的数据集是 readingSkills。它包含学生的考试信息及考试分数。

    我们将基于多重指标把学生分为两类,说母语者(nativeSpeaker = 1)或外国人(nativeSpeaker= 0),他们的考试分数、鞋码以及年龄都在指标范围内。

    对于 R 中的实现,我们首先要安装 party 包:

    # Include required packageslibrary(party)
    library(partykit)# Have a look at the first ten observations of the datasetprint(head(readingSkills))
    input.dat <- readingSkills[c(1:105),]# Grow the decision treeoutput.tree <- ctree(
     nativeSpeaker ~ age + shoeSize + score,
     data = input.dat)# Plot the resultsplot(as.simpleparty(output.tree))


    我们可以看到,它使用的第一个分类标准是分数,因为它对于目标变量的预测非常重要,鞋码则不在考虑的范围内,因为它没有提供任何与语言相关的有用的信息。

    现在,如果我们多了一群新生,并且知道他们的年龄和考试分数,我们就可以预测他们是不是说母语的人。

    聚类算法     

    到目前为止,我们都在讨论有监督学习的有关问题。现在,我们要继续研究聚类算法,它是无监督学习方法的子集。

    因此,只做了一点改动......

    说到聚类,如果我们有一些初始数据需要支配,我们会想建立一个组,这样一来,其中一些组的数据点就是相同的,并且能与其他组的数据点区分开来。

    我们将要学习的算法叫做 K-均值聚类(K-Means Clustering),也可以叫 K-Means 聚类,其中 k 表示产生的聚类的数量,这是最流行的聚类算法之一。

    还记得我们前面用到的 Iris 数据集吗?这里我们将再次用到。

    为了更好地研究,我们使用花瓣测量方法绘制出数据集的所有数据点,如图所示:

    仅仅基于花瓣的度量值,我们使用 3-均值聚类将数据点聚集成三组。

    那么3-均值,或更普遍来说,k-聚类算法是怎样工作的呢?整个过程可以概括为几个简单的步骤:

    1. 初始化步骤:例如 K = 3 簇,这个算法为每个聚类中心随机选择三个数据点。

    2. 群集分配步骤:该算法通过其余的数据点,并将其中的每一个分配给最近的群集。

    3. 重心移动步骤:在集群分配后,每个簇的质心移动到属于组的所有点的平均值。

    步骤 2 和 3 重复多次,直到没有对集群分配作出更改为止。用 R 实现 k-聚类算法很简单,可以用下面的代码完成:

    # Load required packageslibrary(ggplot2)
    library(datasets)# Load datadata(iris)# Set seed to make results reproducibleset.seed(20)# Implement k-means with 3 clustersiris_cl <- kmeans(iris[, 3:4], 3, nstart = 20)
    iris_cl$cluster <- as.factor(iris_cl$cluster)# Plot points colored by predicted clusterggplot(iris, aes(Petal.Length, Petal.Width, color = iris_cl$cluster)) + geom_point()


    从结果中,我们可以看到,该算法将数据分成三个组,由三种不同的颜色表示。我们也可以观察到这三个组是根据花瓣的大小分的。更具体地说,红点代表小花瓣的花,绿点代表大花瓣的花,蓝点代表中等大小的花瓣的花。

    在这一点上需要注意的是,在任何聚类中,对分组的解释都需要在领域中的一些专业知识。在上一个例子中,如果你不是一个植物学家,你可能不会知道,k-均值做的是用花瓣大小给花分组,与 Setosa、 Versicolo r和 Virginica 的区别无关!

    因此,如果我们再次绘制数据,这一次由它们的物种着色,我们将看到集群中的相似性。

    总结

    我们从一开始就走了很长的路。我们已经谈到回归(线性和逻辑)、决策树,以及最后的 K-均值聚类。我们还在R中为其中的每一个方法建立了一些简单而强大的实现。

    那么,每种算法的优势是什么呢? 在处理现实生活中的问题时你该选择哪一个呢?

    首先,这里所提出的方法都是在实际操作中被验证为行之有效的算法 - 它们在世界各地的产品系统中被广泛使用,所以根据任务情况选用,能发挥十分强大的作用。

    其次,为了回答上述问题,你必须明确你所说的优势究竟意味着什么,因为每个方法的相对优势在不同情况下的呈现不同,比如可解释性、鲁棒性、计算时间等等。

    在目前只考虑方法的适当性和预测性能情况下,对每种方法的优缺点进行简简单的总结:

    方法

    输出变量

    优点

    缺点

    线性回归

    连续

    • 易于实现和解释

    • 提供实数范围内的预测


    • 过于依赖统计假设

    • 数据的方差齐性,剩余的独立性等

    逻辑回归

    区间 [0,1] 内连续

    • 低方差

    • 提供结果可能性

    • 擅于处理对角决策边界

    • 高偏差

    决策树

    连续或离散

    • 容易理解

    • 可以很容易地处理分类特征

    • 与特征轴平行的边界工作良好

    • 容易过度拟合

    k-均值

    离散

    • 擅于处理大数据

    • 易于实现和解释

    • 非超球集群性能差

    • 结果取决于 K 的选择

    现在,我们终于有信心将这些知识落实到一些现实问题中了!

    展开全文
  • 机器学习-分类聚类、分类回归、逻辑回归和KNN 分类和聚类的概念: ** 1、分类:使用已知的数据集(训练集)得到相应的模型,通过这个模型可以划分未知数据。分类涉及到的数据集通常是带有标签的数据集,分类是有...

    机器学习-分类和聚类、分类和回归、逻辑回归和KNN

    分类和聚类的概念:

    **

    1、分类:使用已知的数据集(训练集)得到相应的模型,通过这个模型可以划分未知数据。分类涉及到的数据集通常是带有标签的数据集,分类是有监督学习。一般分为两步,训练数据得到模型,通过模型划分未知数据。
    **2.聚类:**直接使用聚类算法将未知数据分为两类或者多类。聚类算法可以分析数据之间的联系,一般分为一步,是无监督学习。
    **常见的分类算法:**KNN、逻辑回归、支持向量机、朴素贝叶斯、决策树、随机森林、
    **常见的聚类算法:**K均值(K-means)、FCM(模糊C均值聚类)、均值漂移聚类、DBSCAN、SPEAK、Mediods、Canopy

    逻辑回归:

    逻辑回归是一种分类算法,而不是回归算法。分类和回归的区别如下:分类的输出数据类型为离散型数据,回归输出为连续性数据;分类的目的是寻找决策边界,回归的目的是找到最优拟合;分类的评价方法一般为精度、混淆矩阵,回归的评价方法为sum of square errors(SSE)或拟合优度;分类是一种定性预测,回归是一种定量预测。
    判断分类和回归的主要方法是观察输出类型为离散型还是连续数据,离散型是分类问题,连续数据是回归问题。
    现在回到逻辑回归,逻辑回归首先拟合数据,最开始的想法是对数据进行线性拟合,但是线性拟合很容易受到离群值(异常值)的影响,因此选择sigmod函数作为逻辑回归的回归函数,sigmod函数的表达式和图像如下:
    在这里插入图片描述
    在这里插入图片描述
    sigmod函数可以有效解决离群值的干扰问题。因为sigmod函数具有很强的鲁棒性,也就是Robust。接着要选定阈值,阈值要具体情况具体分析,不是一上来就是将阈值规定为0.5,有时候阈值规定0.5确实不错,但是在很多情况下,阈值应该偏小或者偏大,比如癌症的预测问题,为了尽量避免小概率事件的发生,尽量选择较小的阈值。
    我们在上面已经知道用sigmod函数作为回归函数,接着就是要寻找一组W,使得函数正确的概率最大,也叫做最大似然估计。求解函数最优的函数我们通过数学推导得到一个叫做交叉熵损失函数,这个函数也就是逻辑回归的损失函数。求解损失函数的方法还是使用梯度下降法。

    总结:逻辑回归----sigmod函数----选定阈值----最大似然估计----交叉熵损失函数----梯度下降法

    KNN(K最近邻分类算法)

    KNN算法的核心思想:确定一个临近度的度量,相似性越高,相异性越低的数据样本,可以认为是同一类数据类别。

    KNN的算法步骤:

    • 数据清洗:数据规范化;例如身高不超过180cm
    • 确定临近值的度量,计算临近度(数据中心的点与其他点之间的距离)
    • 按照临近度递增次序排序
    • 选取与当前点距离最小的k个点
    • 返回前k个点所在类别的出现频率;
    • 返回前k个点出现频率最高的类别作为当前点的预测分类
    展开全文
  • 机器学习聚类、回归分类算法

    千次阅读 2018-08-21 10:12:43
    机器学习从学习的种类分为“无监督学习”(不对样本数据做任何标记甚至是过程干预)和“有监督学习”(总结训练样本向量与标签的映射关系)。 一。聚类: 是非常典型的无监督学习的一种。聚类的行为本源还是人自身...

    机器学习从学习的种类分为“无监督学习”(不对样本数据做任何标记甚至是过程干预)和“有监督学习”(总结训练样本向量与标签的映射关系)。

    一。聚类:

    是非常典型的无监督学习的一种。聚类的行为本源还是人自身。聚类是通过划分一个个范围,把输入样例进入符合条件的范围,通过映射关系输出一个合理的结果。类比于人类的行为,我们分的清猴子和汽车,猴子的种类很多,他们有些行为、样貌迥异,但是我们却不会把他们和汽车弄混,我们认为在一定的差异范围内,他仍然属于猴子的范围。

    在这个过程中,从获得具体的样本向量,到得到聚类结果,人们是不用进行干预的,从而得到了“非监督”的概念。

    二。回归

    简单来说就是“由果索因”的过程,是一种归纳的思想。最常用的回归有两大类----线性回归,非线性回归。

    Loss越小,越精准。会把收集到的数据集分为训练集和验证集。七三开,八二开都可以。训练集一侧用数据多的那部分。

    非线性回归当属逻辑回归。

    三。分类

    在数据中使用最多的算法。涉及一个召回率和精确率。

     

    展开全文
  • 机器学习——降维、聚类、分类、回归

    千次阅读 多人点赞 2019-02-18 19:10:30
    最近做的任务与降维分类有关,于是乎就将机器学习中的“四大元老”——降维、聚类、分类、回归给弄混了。。。。。因此,用了很长时间去理解这“四大元老”的具体概念。并借此机会,趁热打铁得记录一下。 1.机器学习 ...

    前言:

    最近做的任务与降维分类有关,于是乎就将机器学习中的“四大元老”——降维、聚类、分类、回归给弄混了。。。。。因此,用了很长时间去理解这“四大元老”的具体概念。并借此机会,趁热打铁得记录一下。

    1.机器学习

    什么是机器学习?

    机器学习是一帮科学家想让计算机像人一样思考所研发出来的一套计算机理论。它包含了多种算法,涉及到概率论,数理统计、线性代数、矩阵论等多个学科。

    机器学习已经深入到了我们生活的方方面面,为我们提供了很多便捷。比如:我们的邮箱会对我们所有到的邮件进行筛选,将垃圾邮件放入垃圾箱;我们所使用的购物软件,会按照我们平时的购物习惯,商品浏览信息等,对我们进行好物推荐;我们浏览的网页,浏览器会根据我们经常关注的信息,为我们推荐新闻、娱乐、八卦等各种信息……
    日常生活中,机器学习的应用,第一个提到的就是最具代表性的公司:Google,他们所研发的Google Now,Google Photos都是基于机器学习的产物;在百度,图片识别也应用到了机器学习中的视觉处理系统;与此同时,各种各样的企业都开始尝试把自己的产品往机器学习上靠拢,比如金融公司的汇率预测,股票涨跌,房地产公司的房价预测等等。

    实现机器学习的方法就是我们所称的“算法”。目前所有的机器学习算法大概可以被分为4~5类。
    (1)监督学习
    如果在学习过程中,我们不断的向计算机提供数据和这些数据所对应的值(这里的“值”就是“标签”,label),比如给计算机看猫和狗的照片,告诉计算机哪些照片是猫,哪些照片是狗,然后通过这种指引的方式,让计算机去学习如何将照片对应上照片所代表的物体(猫或狗),从而再遇到照片时,它能自己判断照片是猫还是狗。这就叫“监督学习(supervised learning)”。这里的“照片”就是我们给计算机提供的数据;这里的“猫或狗”,就是这些数据所对应的值,也就是标签。

    监督学习中的“标签”就是起到一个监督的作用。预测房屋的价格,股票的涨停就可以使用监督学习实现。

    (2)非监督学习
    如果同样在上述的学习过程中,我们只给计算机提供猫和狗的照片,并不告诉计算机哪些照片是猫,哪些照片是狗,让计算机自己去判断和分类,总结出这两种类型照片的不同之处。这就是“非监督学习(un-supervised learning)”。

    非监督学习中,不用提供数据所对应的标签信息,计算机通过观察各种数据之间的特性,会发现这些特性背后的规律,这些规律也就是非监督方法所学习到的东西。

    (3)半监督学习
    有一种方法综合了监督学习和非监督学习的特征,这种方法叫“半监督学习(semi-supervised learning)”。它主要考虑如何使用少量的 有标签样本 和 大量的没有标签的样本 进行训练和分类。

    (4)强化学习
    在规划机器人的行为准则方面,一种机器学习方法叫做“强化学习(reinforcement learning)”。就是把计算机丢到一个对于它来说是一个完全陌生的环境 或者 让它完成一项从未接触过的任务,它会尝试各种手段,最后让自己成功适应这一个陌生环境。Google开发的AlphaGO就是应用了这一种学习方式。

    (5)遗传算法
    有一种和强化学习类似的学习方法,叫做“遗传算法(Genetic algorithm)”。这种方法是模拟我们所熟知的进化理论,淘汰弱者,适者生存。通过这种淘汰机制去选择最优的设计或模型。比如,开发者开发计算机学会玩“超级玛丽”,最开始的玛丽1代可能不久就牺牲了,不过系统会基于1代的玛丽随机生成玛丽2代,然后再保存这些代中最厉害的玛丽,淘汰掉比较弱的玛丽。然后再次基于强者“繁衍和变异”,生成更强的玛丽。这就是遗传算法的基本思想。

    今天我主要总结的概念是:降维、聚类、分类、回归。上面我们大概了解了机器学习的相关内容。我们来看看这“四大元老”之间的关系。
    话不多说,请看图:
    四大元老关系图
    下图简要说明了四者:
    算法简介

    2.降维

    什么是降维?

    试想一下现在有n个对象a1,a2,……,an,每个对象有多个属性x1,x2,……,xm。当我们用矩阵表示这些对象时,便是一个An×m的矩阵。举个实例:假设我们有5只猫,每只猫的毛色、体型、身高、体重、年龄、性别等特征各不相同。这里的猫就是我们的对象;“猫”这个称呼是这个对象的标签;毛色、体型、体重等特征就是我们所说的对象的属性。在实际的图像识别过程中,我们可能有大批数量的猫、狗的图片,所需的对象的属性也是多个,这些属性的个数就是我们所说的维数。维数越多,信息量数据量越大,占用的磁盘空间和内存较多。实际上我们在实际中有时候并用不到这么多的信息,所以就需要降维。
    降维是试图压缩维度,并尽可能地保留分布信息。我们可以将其视为数据压缩,或者特征选择。
    在实际生活中,我们对样本做数据处理,图像处理等操作时,希望模型的精度比较高,或者说泛化误差率较小,那么我们希样本的采样密度足够大(密采样)。首先我们要明白的是,维数越高,样本在空间上分布得越稀疏(若不明白,请看图:二维降到一维时,样本点的密度增加。可见更高维度的样本点之间密度更稀疏)。
    二维降到一维图
    降维在图像处理中叫图像压缩、特征提取。重在最优分区(可分离性);
    降维在模式识别中叫做特征选择。重在最有描述(保真性)。

    为什么要降维?

    (1)维数越多,信息量越大,数据冗余,为了得到我们想要的信息,或者方便数据处理等操作,我们就需要进行降维。
    (2)数据维度高,我们将无法借助自己领域的知识无法构建有效特征。
    (3)维度超过三维时,人便无法肉眼观察特征。降维后,我们便可以在低维(一维、二维或三维)空间中可视化高维数据。
    (4)克服维数灾难。通过某种数据变换,将原始高维属性空间转变为一个低维“子空间”,在这个子空间中,样本密度大幅度提高,距离计算(也是样本间相似度计算,欧几里得距离等来刻画相似度)也将变得容易;降维要保持原始空间中样本之间的距离在低维空间中得以保持,且在低维子空间中更容易学习。

    PS:维数灾难
    维数灾难是在给定精度下,准确的对某些变量的函数进行估计,所需的样本数量会随着样本的位数的增加而成指数增长。
    假设所有的样本在其属性上归一化,对于δ\delta=0.001,仅考虑单个属性,则需要1000各样本点平均分布在其取值范围内,可以保证所有样本在其附近0.001范围内总能找到一个训练样本。但是如果维数增大时,假定属性维数为20,若满足密采样的要求,则至少需要有(103)20=1060(10^3)^{20}=10^{60}个样本。
    高维情况下出现的样本稀疏、距离计算困难等问题,就是机器学习中面临的严重障碍——“维数灾难”。

    降维的意义

    (1)克服维数灾难,获取本质特征,节省存储空间,去除无用的噪声,实现数据可视化。
    (2)在原始的高维空间中,包含有冗余的信息以及噪声信息,通过降维减少冗余信息所造成的误差,提高识别的精度,通过降维算法也能寻找数据内部的本质结构特征。

    降维的方法

    (1)线性降维方法
      PCA主成分分析
      LDA判别分析
      MDS多尺度分析
    (2)非线性降维方法
      流形学习
      ISOMAP等距特征映射
      LLE局部线性嵌入
    总结什么时候用哪种降维技术
    降维技术
    缺少值比率(Missing Value Ratio):如果数据集缺少的值太多,我们使用这种方法来减少变量的数量。我们可以删除其中有大量缺失值的变量.

    低方差过滤器(Low Variance Filter):我们应用这种方法来识别和删除数据集中的常量变量。目标变量不受低方差变量的过度影响,因此可以安全地删除这些变量。

    高相关滤波器(High Correlation filter):一对具有高相关性的变量增加了数据集中的多重共线性。因此,我们可以使用这种技术找到高度相关的特征并相应地删除它们。

    随机森林(Random Forest):这是最常用的技术之一,它告诉我们数据集中存在的每个特性的重要性。我们可以发现每个特征的重要性,并保持最顶层的特征,从而减少维度。

    后向特征消除(Backward feature elimination)和前向特征选择(Forward feature selection)技术都需要大量的计算时间,因此通常用于较小的数据集。

    因素分析(Factor analysis):这项技术最适合我们有高度相关的变量集的情况。它根据变量之间的相关性将变量分为不同的组,并用一个因子表示每个组。

    主成分分析(Principal component analysis):这是处理线性数据最广泛使用的技术之一。它将数据分为一组组件,这些组件试图解释尽可能多的差异。

    独立分量分析(Independent Component analysis):我们可以用独立分量分析将数据转换成独立分量,用较少的分量描述数据。

    等值线图(ISOMAP):当数据是强非线性时,我们使用这种方法。

    T-SNE:当数据是强非线性时,这种技术也能很好地工作。它对可视化效果也非常好。

    UMAP:这种技术对高维数据很有效。它的运行时间比T-SNE短。

    3.聚类

    什么是聚类

    聚类尝试在没有训练的条件下,对一些没有标签的数据进行归纳分类。根据相似性对数据进行分组,以便对数据进行概括。没有标签是指我们事先不知道任何样本的类别标号,希望通过某种算法把这一组位置类别的样本划分成若干类别,聚类的时候,并不关心某一类是什么,实现的只是将相似的东西聚在一起。

    总的来说,聚类就是对大量未知标注的数据集,按数据内在的相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小。是无监督的分类方式。

    聚类的目标

    同一类中,类内对象是相似的(或是相关的);不同类中的对象是不同的(不相关的)。

    聚类方法好坏的判定:

    (1)产生高质量的聚类结果——簇。簇内有高相似性,簇间有低的相似性。
    (2)取决于聚类方法采用的相似性评估方法以及该方法的具体实现。
    (3)取决于聚类方法能否发现某些/所有的隐含模式。

    常见的聚类算法

    (1)划分聚类:K-means算法、K-medoids算法、K-pototypes算法、CLARANS算法;
    (2)层次聚类:BIRCH算法、CURE算法;
    (3)密度聚类:DBSCAN算法、OPTICS算法、DENCLUE算法
    (4)网格聚类:STING算法、CLIQUE算法、WAVE-CLUSTER算法
    (5)混合聚类:高斯混合模型、CLIQUE(综合密度和网格的算法)
    聚类算法对比

    4.分类

    什么是分类

    在机器学习中,分类属于监督分类的范畴,根据一些给定的已知类别的样本(即有标签的数据),使计算机能够未知类别的样本进行分类。分类要求必须事先明确知道各类别的信息,并且是一种对离散型随机变量建模或预测的监督学习算法。

    分类有以下几种说法,但表达意思是相同的:

    • 分类(classification):分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类别标号中去。
    • 分类是根据一些给定的已知类别标号的样本,训练某种学习机器(即得到某种函数),使它能够对未知类别的样本进行分类。这属于supervised learning(监督学习)。
    • 分类:通过学习来得到样本属性与类标号之间的关系。用自己的话说,就是我们根据已知的一些样本(包括这些样本的类别label与属性)来得到分类模型(即得到样本属性与label之间的函数),然后通过这个目标函数来对只包含属性的样本数据进行分类。

    分类算法的局限

    分类作为一种监督学习,要求必须事先明确指导各个类别的信息,并且所有待分类样本都要有一个类别与之对应。但是很多时候这些条件并不能满足,尤其是在处理海量数据时,如果通过预处理使得数据满足分类算法的要求,代价会非常大,这时候可以考虑使用聚类算法。

    聚类与分类的区别

    首先呢,聚类是非监督学习,分类是监督学习。二者的本质区别就是对于聚类来说,是不知道样本的类别信息的,只能凭借样本在特征空间的分布来分析样本的属性;而对于分类来说,知道样本的类别信息是必要的,根据已知训练样本的类别信息,让计算机自己学着知道每个类别的特点,然后对未知类别的数据进行分类。

    常用的分类算法

    • 决策树分类法
    • 基于规则的分类器
    • 朴素的贝叶斯分类算法(native Bayesian classifier)
    • 基于支持向量机(SVM)的分类器
    • 神经网络法
    • k-最邻近法(K-nearest neighbor,KNN)
    • 模糊分类法

    5.回归

    什么是回归

    与分类相似,回归也是监督学习的一种算法,因此也需要先向计算机输入数据的训练样本让计算机学习。与分类的区别是:
      回归方法是一种对数值型连续随机变量进行预测和建模的监督学习算法,产生的结果一般也是数值型的。使用案例一般包括房价预测、股票走势或测试成绩等连续变化的案例。

    回归任务的特点是标注的数据集具有数值型的目标变量。也就是说,每一个观察样本都有一个数值型的标注真值以监督算法。

    * 常用的回归算法*

    • (1)线性回归
      线性回归是处理回归任务最常用的算法之一。该算法的形式十分简单,它期望使用一个超平面拟合数据集(只有两个变量的时候就是一条直线)。如果数据集中的变量存在线性关系,那么其就能拟合地非常好。

      优点:线性回归的理解与解释都十分直观,并且还能通过正则化来降低过拟合的风险。另外,线性模型很容易使用随机梯度下降和新数据更新模型权重。

      缺点:线性回归在变量是非线性关系的时候表现很差。并且其也不够灵活以捕捉更复杂的模式,添加正确的交互项或使用多项式很困难并需要大量时间。
      Python实现

    • (2)回归树(集成方法)
      回归树(决策树的一种)通过将数据集重复分割为不同的分支而实现分层学习,分割的标准是最大化每一次分离的信息增益。这种分支结构让回归树很自然地学习到非线性关系。

      集成方法,如随机森林(RF)或梯度提升树(GBM)则组合了许多独立训练的树。这种算法的主要思想就是组合多个弱学习算法而成为一种强学习算法,不过这里并不会具体地展开。在实践中 RF 通常很容易有出色的表现,而 GBM 则更难调参,不过通常梯度提升树具有更高的性能上限。

      优点:决策树能学习非线性关系,对异常值也具有很强的鲁棒性。集成学习在实践中表现非常好,其经常赢得许多经典的(非深度学习)机器学习竞赛。

      缺点:无约束的,单棵树很容易过拟合,因为单棵树可以保留分支(不剪枝),并直到其记住了训练数据。集成方法可以削弱这一缺点的影响。
      随机森林Python实现
      梯度提升树Python实现

    • (3)深度学习
      深度学习是指能学习极其复杂模式的多层神经网络。该算法使用在输入层和输出层之间的隐藏层对数据的中间表征建模,这也是其他算法很难学到的部分。

      深度学习还有其他几个重要的机制,如卷积和 drop-out 等,这些机制令该算法能有效地学习到高维数据。然而深度学习相对于其他算法需要更多的数据,因为其有更大数量级的参数需要估计。

      优点:深度学习是目前某些领域最先进的技术,如计算机视觉和语音识别等。深度神经网络在图像、音频和文本等数据上表现优异,并且该算法也很容易对新数据使用反向传播算法更新模型参数。它们的架构(即层级的数量和结构)能够适应于多种问题,并且隐藏层也减少了算法对特征工程的依赖。

      缺点:深度学习算法通常不适合作为通用目的的算法,因为其需要大量的数据。实际上,深度学习通常在经典机器学习问题上并没有集成方法表现得好。另外,其在训练上是计算密集型的,所以这就需要更富经验的人进行调参(即设置架构和超参数)以减少训练时间。
      Python资源

    • (4)最近邻算法
      最近邻算法是「基于实例的」,这就意味着其需要保留每一个训练样本观察值。最近邻算法通过搜寻最相似的训练样本来预测新观察样本的值。

      而这种算法是内存密集型,对高维数据的处理效果并不是很好,并且还需要高效的距离函数来度量和计算相似度。在实践中,基本上使用正则化的回归或树型集成方法是最好的选择。

    6.简单的判别方法

    给定一个样本特征,我们希望预测其对应的属性值,如果是离散的,那么就是分类问题。反之,如果是连续的数据,就是回归问题。

    给定一组样本特征,我们没有对应的属性值,而是想发觉这组样本的空间分布,比如分析哪些样本靠的更近,那些样本之间里的很远,这就是聚类问题。

    展开全文
  • 回归分类聚类:三大方向剖解机器学习算法的优缺点
  • 2、回归算法:non-Linear regression 、 SVM(支持向量回归)、随机森林 3、聚类:k-means、层次聚类(??不懂)、GMM(高斯混合模型)、谱聚类(??不懂) 聚类算法唯一用到的信息就是样本与样本之间的相似度; ...
  • 机器学习】常用聚类算法原型

    千次阅读 2018-07-19 16:11:32
    前一篇博客中提到的回归分类都属于监督学习,本文着重探讨无监督学习中的聚类算法。 博主之前看过一些资料,这两天也翻阅了网上的各大博客后,也想总结一下,写一写聚类相关的知识点,对自己所看的知识也算是总结...
  • 作者: 胡萝卜酱公众号:经管人学数据分析提及机器学习算法,首先会想到哪些呢?...而本文,胡萝卜酱将机器学习任务的角度来进行分类,也就是回归分类聚类。本文仅作为简单的科普,不涉及推理等...
  • 目录第一部分 回归算法(一)线性回归线性模型线性回归损失函数(误差大小)减小误差的方法正规方程梯度下降正规方程、梯度下降API回归性能评估回归评估API两种方法的总结(二)欠拟合与过拟合定义产生原因及解决...
  • 机器学习入门整理 内容总结来自网课和部分博客,代码数据集来自中国大学mooc北理的机器学习课程,大赞这个课程。 链接想起来再更新上去,私戳可以发评论里,毕竟体积也不算很小。仅学习总结,侵删。 一、无监督学习-...
  • 一句话概括: 1. 聚类:无监督学习学习结果将产生几个集合,集合中的元素彼此相似;...聚类算法是无监督学习的一种算法,也就是说,并没有一批已经打好标签的数据供机器训练模型。因此该算法用于在数据中...
  • ## 机器学习-分类聚类、分类回归、逻辑回归和KNN分类和聚类的概念:**1、分类:使用已知的数据集(训练集)得到相应的模型,通过这个模型可以划分未知数据。分类涉及到的数据集通常是带有标签的数据集,分类是...
  • 来源:大数据本文共7300字,建议阅读10+分钟。机器是怎样学习的,都学到了什么?人类又是怎样教会机器学习的?本文通过案例给你讲清楚各类算法的原理和应用。机器学习,一言以...
  • 机器学习的观点,分类技术是一种有指导的学习,即每个训练样本的数据对象已经有类标识,通过学习可以形成表达数据对象与类标识间对应的知识。 要构造分类器,需要有一个训练样本数据集作为输入。训练集由一组...
  • MLlib目前支持4种常见的机器学习问题:分类、回归、聚类和协同过滤 MLlib在Spark整个生态系统中的位置如图下图所示 Spark MLlib库 MLlib算法库的核心内容 实验的数据直接使用官方提供的数据: ...
  • 前面写了很多监督学习的东西,除了回归就是分类,今儿有点想换换口味,写写无监督学习算法。k-means算法是一种聚类算法,聚类就是无监督学习里面的内容。那么先来说说聚类: 一、聚类简介 聚类是一种无...
  • 导读:机器是怎样学习的,都学到了什么?人类又是怎样教会机器学习的?本文通过案例给你讲清楚各类算法的原理和应用。机器学习,一言以蔽之就是人类定义一定的计算机算法,让计算机根...
  • 『编者按』近年来,人工智能(AI)正在不断释放科技革命和产业变革积蓄...作者:高扬 卫峥 万娟来源:大数据(ID:hzdashuju)内容摘编自《白话深度学习与TensorFlow》本文导读:机器是怎样学习的?都学到了什么?人类又...
  • 机器学习之理解聚类

    2020-09-06 23:34:58
    决策树、随机森林、逻辑回归都属于“有监督学习”。 聚类属于“无监督学习”,其作用就是将数据划分成有意义或有用的簇。 聚类的应用: 对客户信息进行分类,以实现精准营销。 可以用于降维和矢量量化(vector ...
  • 聚类算法  任务:将数据集中的样本划分成若干个通常不相交的子集,对特征空间的一种划分。  性能度量:类内相似度高,类间相似度低。两大类:1.有参考标签,外部指标;2.无参照,内部指标。  距离计算:非负性...
  • 点击上方,选择星标或置顶,每天给你送干货!阅读大概需要17分钟跟随小博主,每天进步一丢丢选自 | EliteDataScience 编译 | 机器之心在本教程中,作者对现代机器学习算...
  • 原文地址:回归分类聚类:三大方向剖解机器学习算法的优缺点 在本教程中,作者对现代机器学习算法进行了简要梳理。虽然类似的总结有很多,但是它们都没有真正解释清楚每个算法在实践中的好坏,而这正是本文...
  • 前面已经介绍了决策树模型和集成学习模型等内容,无论使用它两用来做回归还是分类任务都是有一个预定对比的y值(也就是标签),如果数据中没有这个标签了,只是一群离散的值,该怎么处理呢?这就涉及到本次梳理的...
  • 模型的保存和加载 from sklearn.externals import joblib 分类算法:逻辑回归 逻辑回归:线性回归的式子作为输入,解决二分类问题, 也可以得出概率值 1、应用场景(基础分类...逻辑回归也是一个算法自我学习的过程

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,083
精华内容 433
关键字:

机器学习分类、聚类、回归算法