精华内容
下载资源
问答
  • 机器学习的基本任务

    2021-03-15 13:44:00
    机器学习的主要任务机器学习概述一、有监督学习1.1 回归1.2 分类二、无监督学习 机器学习概述 机器学习是利用计算机基于数据统计规律构建概率统计模型并运用模型进行预测与分析的一门学学科,机器血包括监督学习、无...

    机器学习概述

    机器学习是利用计算机基于数据统计规律构建概率统计模型并运用模型进行预测与分析的一门学学科,机器血包括监督学习、无监督学习、半监督学习、强化学习等[1]。

    机器学习的一个最根本假设是:独立同分布假设。也就是样本之间相互独立,并且服从相同的统计分布规律。
    统计学习的三要素为模型、策略、算法[1]。

    一、有监督学习

    监督学习简单来说就是给定数据特征并人为给数据进行打标签,然后给定损失函数,用特定的算法拟合由 x 到 y 的映射关系。监督学习假设 特征 x 和 标签 y 之间有 p(x,y) 这样的联合概率分布,并且训练集合验证集遵循相同的概率分布。有监督学习的过程就是拟合其条件概率分布 p(y|x) 即在 x 发生的情况下 y 发生的概率。常见的监督学习算法有线性回归、逻辑回归、决策树、随机森林、支持向量机、Adaboost、XGBoost、LGB、MLP、神经网络等。

    1.1 回归

    回归就是回到本来的情况,其 y 变量是一个连续的数值。回归常用的评估方法有 MSE、MAE、R 方、调整后的R方等。

    1.2 分类

    分类和回归的最大不同是 y 标签只有有限个类别,分类又可分为二分类和多分类,多分类可通过二分类来实现。分类常用的评估方法有准确率、召回率、精确度、f1 score、AUC 等,常画出其ROC 曲线以及混淆矩阵来评判模型的好坏。

    二、无监督学习

    无监督学习又称为聚类、其本质是通过度量样本点之间的距离来判断样本点之间的团簇情况。常用的聚类算法有 K-mean、层次聚类、DBSCAN 等方法各有各的优缺点。

    cite [1]: 《统计学习方法》-李航

    展开全文
  • 在过去二十年中,人类收集 、存储、传输、处理数据的能力取得了飞速提升,人类社会的各个角落都积累了大量数据,亟需能有效地对数据进行分析利用的机器算法,而机器学习顺应了大时代的这需求,因此该学科领域很...

    一、机器学习简介

    1.机器学习发展历程

    简单用思维导图的形式梳理一下机器学习的发展历程:
    在这里插入图片描述

    在过去二十年中,人类收集存储传输处理数据的能力取得了飞速提升,人类社会的各个角落都积累了大量数据,亟需能有效地对数据进行分析利用的机器算法,而机器学习顺应了大时代的这个需求,因此该学科领域很自然地取得巨大发展、受到广泛关注。

    2.机器学习任务分类

    机器学习大体可分为如下几类:

    在这里插入图片描述

    重点讲解“监督”的含义。以监督学习(supervised learning)为例,监督学习的任务是尝试学习一个数学模型,使模型能够对任意给定的输入,对其相应的输出做一个好的预测。监督指的是输出存在且已知(在分类情况下种类已知,在回归情况下范围已知)。而半监督聚类学习和无监督学习的目的是探究数据中的内部关系和结构。

    二、机器学习实例代码演示

    1.准备工作

    pip install numpy
    pip install pandas
    pip install sklearn
    pip install matplotlib
    pip install seaborn
    

    在这里插入图片描述

    • 代码头部引入相关包
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    %matplotlib inline 
    plt.style.use("ggplot")      
    import seaborn as sns
    from sklearn import datasets
    

    2.回归

    1)回归分析概述

    在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间互相依赖的定量关系的一种统计分析方法。

    根据自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。

    其中线性回归分析可分为一元线性回归和多元线性回归。

    2)回归案例

    波士顿房价数据集包含美国人口普查局收集的美国马萨诸塞州波士顿住房价格的有关信息, 数据集很小,只有506个案例。

    变量名说明
    CRIM城镇人口犯罪率
    ZN超过25000平方英尺的住宅用地所占比例
    INDUS城镇非零售业务地区的比例
    CHAS查尔斯河虚拟变量(如果土地在河边=1;否则是0)
    NOX一氧化氮浓度(每1000万份)
    RM平均每居民房数
    AGE在1940年之前建成的所有者占用单位的比例
    DIS与五个波士顿就业中心的加权距离
    RAD辐射状公路的可达性指数
    TAX每10,000美元的全额物业税率
    RTRATIO城镇师生比例
    B1000(Bk-0.63)^2其中Bk是城镇黑人的比例
    LSTAT人口中地位较低人群的百分数
    MEDV(目标变量/类别属性)以1000美元计算的自有住房的中位数

    查看数据集:

    v_housing = datasets.load_boston() 
    X = v_housing.data
    y = v_housing.target
    features = v_housing.feature_names
    boston_data = pd.DataFrame(X,columns=features)
    boston_data["Price"] = y
    boston_data.head()
    

    在这里插入图片描述
    查看特征种类:

    print(v_housing.feature_names)
    ['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO'
     'B' 'LSTAT']
    

    对十三个变量和价格以散点图的方式进行可视化:

    v_namedata = v_housing.feature_names
    for i in range(len(v_housing.feature_names)):
        sns.scatterplot(x=X[:,i],y=y,color="r",alpha=0.6)
        plt.title(v_namedata[i])
        plt.show()
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    可以看到住宅平均房间数(RM)与价格(Prine)更接近正线性相关,我们求一下相关的系数权重w和偏移量b:

    from sklearn.linear_model import LinearRegression
    plt.rcParams['font.sans-serif'] = ['SimHei']
    x = v_housing.data[:,5,np.newaxis]
    y = v_housing.target
    lm = LinearRegression()
    lm.fit(x,y)
    print('方程的确定性系数R的平方:',lm.score(x,y))
    print('线性回归算法的权重w:',lm.coef_)
    print('线性回归算法的偏移量b:',lm.intercept_)
    plt.scatter(x,y,color='blue')
    plt.plot(x,lm.predict(x),color='green',linewidth=6)
    plt.xlabel('住宅平均房间数(RM)')
    plt.ylabel(u'房屋价格')
    plt.title('线性回归住宅平均房间数RM与房屋价格Price的关系')
    plt.show()
    方程的确定性系数R的平方: 0.48352545599133423
    线性回归算法的权重w: [9.10210898]
    线性回归算法的偏移量b: -34.670620776438554
    

    在这里插入图片描述

    3.分类案例

    鸢(yuān)尾花

    Iris Data Set(鸢尾属植物数据集)是历史比较悠久的数据集,它首次出现在著名的英国统计学家和生物学家Ronald Fisher 1936年的论文《The use of multiple measurements in taxonomic problems》中,被用来介绍线性判别式分析。

    在这个数据集中,包括了三类不同的鸢尾属植物:Iris Setosa,Iris Versicolour,Iris Virginica。每类收集了50个样本,因此这个数据集一共包含了150个样本,每个样本选取4个代表性的特征,它们分别是:

    • sepallength:萼片长度,单位是厘米
    • sepalwidth:萼片宽度,单位是厘米
    • petallength:花瓣长度,单位是厘米
    • petalwidth:花瓣宽度,单位是厘米
    iris = datasets.load_iris()
    X = iris.data
    y = iris.target
    features = iris.feature_names
    iris_data = pd.DataFrame(X,columns=features)
    iris_data['target'] = y
    iris_data.head()
    

    在这里插入图片描述

    #自定义marker
    marker = ['s','x','o']
    #依次遍历三种不同的花
    for index,c in enumerate(np.unique(y)):
        plt.scatter(x=iris_data.loc[y==c,"sepal length (cm)"],y=iris_data.loc[y==c,"sepal width (cm)"],alpha=0.8,label=c,marker=marker[c])
    plt.xlabel("sepal length (cm)")
    plt.ylabel("sepal width (cm)")
    plt.legend()
    plt.show()
    

    在这里插入图片描述

    plt.scatter参数讲解:

    • x,y:散点图二维数据
    • alpha:透明度,范围为[0,1],从透明到不透明
    • label:代表点的名称
    • marker:MarkerStyle,默认‘o’,具体含义如下:
      在这里插入图片描述

    现在探究一下为什么会出现紫色正方形,以(6.0,2.2)为例:

    在这里插入图片描述

    拆解分析:

    index = c = 1
    plt.scatter(x=iris_data.loc[y==c,"sepal length (cm)"],y=iris_data.loc[y==c,"sepal width (cm)"],alpha=0.8,label=c,marker=marker[c])
    plt.xlabel("sepal length (cm)")
    plt.ylabel("sepal width (cm)")
    plt.legend()
    plt.show()
    

    在这里插入图片描述

    index = c = 2
    plt.scatter(x=iris_data.loc[y==c,"sepal length (cm)"],y=iris_data.loc[y==c,"sepal width (cm)"],alpha=0.8,label=c,marker=marker[c])
    plt.xlabel("sepal length (cm)")
    plt.ylabel("sepal width (cm)")
    plt.legend()
    plt.show()
    

    在这里插入图片描述
    得出结论:x号和圈重叠后就会变成正方形。

    更具体地,我们可以使用pandas.plotting.scatter_matrix方法来生成所有特征的两两散点图组成的矩阵:

    from sklearn.model_selection import train_test_split
    import mglearn
    X_train,X_test,y_train,y_test = train_test_split(iris['data'],iris['target'],test_size=0.2,random_state=0)
    iris_dataframe=pd.DataFrame(X_train,columns=iris.feature_names)
    grr=pd.plotting.scatter_matrix(iris_dataframe,c=y_train,figsize=(15,15),marker='o',hist_kwds={'bins':20},s=60,alpha=.8,cmap=mglearn.cm3)
    

    在这里插入图片描述
    接下来让我们利用Iris数据集建立预测模型:

    X_train, X_test, y_train, y_test = train_test_split(
    iris['data'], iris['target'], test_size=0.3,random_state=0)
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    print("Test set score: {:.2f}".format(knn.score(X_test, y_test)))
    result = knn.predict(X_new)
    Test set score: 0.98
    

    测试第五行的花朵数据:

    X_new = np.array([[5,3.6,1.4,0.2]])
    result = knn.predict(X_new)
    print('Prediction:{}'.format(result))
    print('Predicted target name:{}'.format(iris_dataset['target_names'][result]))
    Prediction:[0]
    Predicted target name:['setosa']
    

    4.无监督学习案例

    # 生成月牙型非凸集
    x, y = datasets.make_moons(n_samples=2000, shuffle=True,
                      noise=0.05, random_state=None)
    for index,c in enumerate(np.unique(y)):
        plt.scatter(x[y==c,0],x[y==c,1],s=7)
    plt.show()
    

    在这里插入图片描述
    其中,for循环的作用是先画上半圈,再画下半圈,我们也可以不使用循环采用另一种方式:

    plt.scatter(x[:,0],x[:,1],c=y,s=7)
    plt.show()
    

    在这里插入图片描述

    # 生成符合正态分布的聚类数据
    x, y = datasets.make_blobs(n_samples=5000, n_features=2, centers=3)
    for index,c in enumerate(np.unique(y)):
        plt.scatter(x[y==c, 0], x[y==c, 1],s=7)
    plt.show()
    

    在这里插入图片描述
    对于这种聚类数据,也可以跳过循环直接画图:

    plt.scatter(x[:, 0], x[:, 1],s=7,c=y)
    plt.show()
    

    在这里插入图片描述

    题外话

    为什么感觉这个jupyter notebook在和我卖萌???

    在这里插入图片描述

    参考文献

    [1] 周志华,机器学习,清华大学出版社,2016
    [2] 李航,统计学习方法,清华大学出版社,2012
    [3] PYthon——plt.scatter各参数详解
    [4] 波士顿房价预测——回归分析案例(献给初学者)
    [5] 机器学习入门:从Iris数据分类开始

    展开全文
  • 通俗讲解一.前言二.定义1.监督学习2....比如,苹果的皮是”光滑“的,橘子的皮是”褶皱“的,”光滑“和”褶皱“就是 ”苹果“ 和 ”橘子“ 这两个样本的特征值。 2、目标值(标签) 目标值又叫标签,

    一.前言

    在介绍监督学习和无监督学习之前,我们首先来了解一下什么是特征值和目标值。

    1.特征值:
    特征值是指数据的特征,对于每个样本,通常具有一些 “属性”(Attribute)或者说 ”特征“(Feature),特征所具体取的值就被称作 ”特征值“。

    比如,苹果的皮是”光滑“的,橘子的皮是”褶皱“的,”光滑“和”褶皱“就是 ”苹果“ 和 ”橘子“ 这两个样本的特征值。

    2.目标值(标签)
    目标值又叫标签,是数据的标签,它描述了该条样本数据所属的目标或类型。

    比如,样本1, ”光滑” 、“球形” 及后面的一系列特征所描述的目标是 “苹果”

    二.定义

    1.监督学习

    1.官方定义:
    监督学习是从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。这就要求学习算法是在一种“合理”的方式从一种从训练数据到看不见的情况下形成。

    2.狐仙定义:
    你的女朋友教你认识香水跟口红,她先告诉你香水跟口红分别有什么特征,然后拿出一堆香水跟口红,并且告诉你哪些是香水,哪些是口红。
    这样当你再一次看到香水跟口红时,你就能够辨认出来了。

    2.无监督学习

    1.官方定义:
    现实生活中常常会有这样的问题:缺乏足够的先验知识,因此难以人工标注类别或进行人工类别标注的成本太高。很自然地,我们希望计算机能代我们完成这些工作,或至少提供一些帮助。根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。

    2.狐仙定义:
    你的女朋友拿出一堆香水跟口红,但是她不告诉你哪些是香水,哪些是口红,而且也不告诉你有什么特征,你只能靠自己对它们进行分类,这样当你再一次看到香水和口红时,你能够正确的分类。(不代表你知道什么是香水,什么是口红,仅仅代表你能够正确的把它们各自分到正确的类别中)

    三.区别

    差别之一:有没有目标值的差别
    差别之二:学习过程有没有人工干预

    四.范围

    1.监督学习

    1.回归问题

    上图是机器学习中常见的房价预测问题,横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是千美元。那基于这组数据,假如你有一个朋友,他有一套 750 平方英尺房子,现在他希望把房子卖掉,他想知道这房子能卖多少钱。
    我们应用学习算法,可以在这组数据中画一条直线,或者换句话说,拟合一条直线,根据这条线我们可以推测出,这套房子可能卖$150,000,当然这不是唯一的算法。可能还有更好的,比如我们不用直线拟合这些数据,用二次方程去拟合可能效果会更好。根据二次方程的曲线,我们可以从这个点推测出,这套房子能卖接近$200,000,这就是监督学习的例子。

    2.分类问题

    上图是机器学习中常见的恶性肿瘤问题。假设说你想通过查看
    病历来推测乳腺癌良性与否,假如有人检测出乳腺肿瘤,恶性肿瘤有害并且十分危险,而良性的肿瘤危害就没那么大,所以人们显然会很在意这个问题。
    让我们来看一组数据:这个数据集中,横轴表示肿瘤的大小,纵轴上,我标出 1 和 0 表示是或者不是恶性肿瘤。我们之前见过的肿瘤,如果是恶性则记为 1,不是恶性,或者说良性记为 0。
    我有 5 个良性肿瘤样本,在 1 的位置有 5 个恶性肿瘤样本。现在我们有个朋友很不幸检查出乳腺肿瘤。假设说她的肿瘤大概这么大,那么机器学习的问题就在于,你能否估算出肿瘤是恶性的或是良性的概率。

    3.总结
    回归这个词的意思是,我们在试着推测出这一系列连续值属性。
    分类指的是,我们试着推测出离散的输出值。

    2.无监督学习

    1.聚类问题

    在无监督学习中我们已知数据集,却不知如何处理,也未告知每个数据点是什么。别的都不知道,只知道一个数据集。你能从数据中找到某种结构吗?针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。
    这是一个,那是另一个,二者不同。是的,无监督学习算法可能会把这些数据分成两个不同的簇。所以叫做聚类算法。事实证明,它能被用在很多地方。
    聚类应用的一个例子就是在谷歌新闻中。谷歌新闻每天都在,收集非常多,非常多的网络的新闻内容。它再将这些新闻分组,组成有关联的新闻。所以谷歌新闻做的就是搜索非常多的新闻事件,自动地把它们聚类到一起。所以,这些新闻事件全是同一主题的,所以显示到一起。

    2.非聚类问题

    现在来介绍另一种无监督学习。
    鸡尾酒宴问题:
    你可以想象下,有个宴会房间里满是人,全部坐着,都在聊天,这么多人同时在聊天,声音彼此重叠,因为每个人都在说话,同一时间都在说话,你几乎听不到你面前那人的声音。所以,可能在一个这样的鸡尾酒宴中的两个人,他俩同时都在说话,我们放两个麦克风在房间中,因为这些麦克风在两个地方,离说话人的距离不同,因此每个麦克风记录下不同的声音,虽然是同样的两个说话人。听起来像是两份录音被叠加到一起,或是被归结到一起,产生了我们现在的这些录音。另外,这个算法还会区分出两个音频资源,这两个可以合成或合并成之前的录音。

    五.选择

    最后我们简单介绍下如何对监督学习和无监督学习进行选择。

    1.从定义入手:
    有训练样本则考虑采用监督学习方法;
    无训练样本,则一定不能用监督学习方法。
    2.现实问题中,即使没有训练样本,我们也能够凭借自己的双眼,从待分类的数据中,人工标注一些样本,并把它们作为训练样本,这样的话,可以把条件改善,用监督学习方法来做。
    3.对于不同的场景,正负样本的分布如果会存在偏移(可能大的偏移,可能比较小),这样的话,监督学习的效果可能就不如用非监督学习了。

    展开全文
  • 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的...

    目录

    机器学习

    机器学习的步骤

    01  线性回归

    02 逻辑回归

    03 线性判别分析

    04 分类和回归树

    05 朴素贝叶斯

    06 K近邻

    07 学习矢量量化

    08 支持向量机

    09 bagging和随机森林

    10 Boosting和AdaBoost

     每文一语


    机器学习

    机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论凸分析算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的基础,更是我们现在社会进步的源泉。

    随着社会的进步和发展,我们在科技领域不断的创新,当人类的第一台计算机诞生之后,技术的迭代就已经被装上了风火轮了。我们希望计算机可以帮助我们计算我们人类无法涉及到的领域,但是野心永远是人类进化的动力,我们还希望我们的机器可以帮助我们解决我们的工作,那么机器学习就应运而生了。

     

    人工智能是追求目标,机器学习是实现手段,深度学习是其中一种方法

    机器学习的步骤

    作为一个初学者,机器学习需要掌握怎样的技术呢?首先必须要有一门熟练的编程语言

    Python,Java,R语言.....其实Python主要在一些大数据集模型背后占有强大的优势,而R语言在科研统计比较的吃香,因为R语言拥有很多个第三方程序包,利用少量简洁的代码就可以解决我们的科研工作。

    1. 选择一个合适的模型,这通常需要依据实际问题而定,针对不同的问题和任务需要选取恰当的模型,模型就是一组函数的集合。
    2、判断一个函数的好坏,这需要确定一个衡量标准,也就是我们通常说的损失函数(Loss Function),损失函数的确定也需要依据具体问题而定,如回归问题一般采用欧式距离,分类问题一般采用交叉熵代价函数。
    3、找出“最好”的函数,如何从众多函数中最快的找出“最好”的那一个,这一步是最大的难点,做到又快又准往往不是一件容易的事情。常用的方法有梯度下降算法,最小二乘法等和其他一些技巧(tricks)。

    这就是为什么我们说机器学习,底层基础是数学理论,其他的应该在编程上面下功夫

    差不多认识了我们机器学习,接下来我们就开始从机器学习最常见的10大算法入门,介绍它们的概念知识,最后我们将开启机器学习的大门,详细记录我们学习过程中的点点滴滴!

     

    在机器学习领域,有种说法叫做“世上没有免费的午餐”,简而言之,它是指没有任何一种算法能在每个问题上都能有最好的效果,这个理论在监督学习方面体现得尤为重要。

    举个例子来说,你不能说神经网络永远比决策树好,反之亦然。模型运行被许多因素左右,例如数据集的大小和结构。

    因此,你应该根据你的问题尝试许多不同的算法,同时使用数据测试集来评估性能并选出最优项。

    当然,你尝试的算法必须和你的问题相切合,其中的门道便是机器学习的主要任务。打个比方,如果你想打扫房子,你可能会用到吸尘器、扫帚或者拖把,但你肯定不会拿把铲子开始挖坑吧。这个道理很多人都懂,哈哈哈。

    01  线性回归

    线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。

    由于预测建模主要关注最小化模型的误差,或者以可解释性为代价来做出最准确的预测。 我们会从许多不同领域借用、重用和盗用算法,其中涉及一些统计学知识。

    线性回归用一个等式表示,通过找到输入变量的特定权重(B),来描述输入变量(x)与输出变量(y)之间的线性关系。

    图片

    Linear Regression

    举例:y = B0 + B1 * x

    给定输入x,我们将预测y,线性回归学习算法的目标是找到系数B0和B1的值。

    可以使用不同的技术从数据中学习线性回归模型,例如用于普通最小二乘和梯度下降优化的线性代数解。

    线性回归已经存在了200多年,并且已经进行了广泛的研究。 如果可能的话,使用这种技术时的一些经验法则是去除非常相似(相关)的变量并从数据中移除噪声。 这是一种快速简单的技术和良好的第一种算法。

    02 逻辑回归

    逻辑回归是机器学习从统计领域借鉴的另一种技术。 这是二分类问题的专用方法(两个类值的问题)。

    逻辑回归与线性回归类似,这是因为两者的目标都是找出每个输入变量的权重值。 与线性回归不同的是,输出的预测值得使用称为逻辑函数的非线性函数进行变换。

    逻辑函数看起来像一个大S,并能将任何值转换为0到1的范围内。这很有用,因为我们可以将相应规则应用于逻辑函数的输出上,把值分类为0和1(例如,如果IF小于0.5,那么 输出1)并预测类别值。

    图片

    Logistic Regression

    由于模型的特有学习方式,通过逻辑回归所做的预测也可以用于计算属于类0或类1的概率。这对于需要给出许多基本原理的问题十分有用。

    与线性回归一样,当你移除与输出变量无关的属性以及彼此非常相似(相关)的属性时,逻辑回归确实会更好。 这是一个快速学习和有效处理二元分类问题的模型。

    03 线性判别分析

    传统的逻辑回归仅限于二分类问题。 如果你有两个以上的类,那么线性判别分析算法(Linear Discriminant Analysis,简称LDA)是首选的线性分类技术。

    LDA的表示非常简单。 它由你的数据的统计属性组成,根据每个类别进行计算。 对于单个输入变量,这包括:

    • 每类的平均值。

    • 跨所有类别计算的方差。

    图片

    Linear Discriminant Analysis

    LDA通过计算每个类的判别值并对具有最大值的类进行预测来进行。该技术假定数据具有高斯分布(钟形曲线),因此最好先手动从数据中移除异常值。这是分类预测建模问题中的一种简单而强大的方法。

    04 分类和回归树

    决策树是机器学习的一种重要算法。

    决策树模型可用二叉树表示。对,就是来自算法和数据结构的二叉树,没什么特别。 每个节点代表单个输入变量(x)和该变量上的左右孩子(假定变量是数字)。

    图片

    Decision Tree

    树的叶节点包含用于进行预测的输出变量(y)。 预测是通过遍历树进行的,当达到某一叶节点时停止,并输出该叶节点的类值。

    决策树学习速度快,预测速度快。 对于许多问题也经常预测准确,并且你不需要为数据做任何特殊准备。

    05 朴素贝叶斯

    朴素贝叶斯是一种简单但极为强大的预测建模算法。

    该模型由两种类型的概率组成,可以直接从你的训练数据中计算出来:1)每个类别的概率; 2)给定的每个x值的类别的条件概率。 一旦计算出来,概率模型就可以用于使用贝叶斯定理对新数据进行预测。 当你的数据是数值时,通常假设高斯分布(钟形曲线),以便可以轻松估计这些概率。

    图片

    Bayes Theorem

    朴素贝叶斯被称为朴素的原因,在于它假设每个输入变量是独立的。 这是一个强硬的假设,对于真实数据来说是不切实际的,但该技术对于大范围内的复杂问题仍非常有效。

    06 K近邻

    KNN算法非常简单而且非常有效。KNN的模型用整个训练数据集表示。 是不是特简单?

    通过搜索整个训练集内K个最相似的实例(邻居),并对这些K个实例的输出变量进行汇总,来预测新的数据点。 对于回归问题,新的点可能是平均输出变量,对于分类问题,新的点可能是众数类别值。

    成功的诀窍在于如何确定数据实例之间的相似性。如果你的属性都是相同的比例,最简单的方法就是使用欧几里德距离,它可以根据每个输入变量之间的差直接计算。

    图片

    K-Nearest Neighbors

    KNN可能需要大量的内存或空间来存储所有的数据,但只有在需要预测时才会执行计算(或学习)。 你还可以随时更新和管理你的训练集,以保持预测的准确性。

    距离或紧密度的概念可能会在高维环境(大量输入变量)下崩溃,这会对算法造成负面影响。这类事件被称为维度诅咒。它也暗示了你应该只使用那些与预测输出变量最相关的输入变量。

    07 学习矢量量化

    K-近邻的缺点是你需要维持整个训练数据集。 学习矢量量化算法(或简称LVQ)是一种人工神经网络算法,允许你挂起任意个训练实例并准确学习他们。

    图片

    Learning Vector Quantization

    LVQ用codebook向量的集合表示。开始时随机选择向量,然后多次迭代,适应训练数据集。 在学习之后,codebook向量可以像K-近邻那样用来预测。 通过计算每个codebook向量与新数据实例之间的距离来找到最相似的邻居(最佳匹配),然后返回最佳匹配单元的类别值或在回归情况下的实际值作为预测。 如果你把数据限制在相同范围(如0到1之间),则可以获得最佳结果。

    如果你发现KNN在您的数据集上给出了很好的结果,请尝试使用LVQ来减少存储整个训练数据集的内存要求。

    08 支持向量机

    支持向量机也许是最受欢迎和讨论的机器学习算法之一。

    超平面是分割输入变量空间的线。 在SVM中,会选出一个超平面以将输入变量空间中的点按其类别(0类或1类)进行分离。在二维空间中可以将其视为一条线,所有的输入点都可以被这条线完全分开。SVM学习算法就是要找到能让超平面对类别有最佳分离的系数。

    图片

    Support Vector Machine

    超平面和最近的数据点之间的距离被称为边界,有最大边界的超平面是最佳之选。同时,只有这些离得近的数据点才和超平面的定义和分类器的构造有关,这些点被称为支持向量,他们支持或定义超平面。在具体实践中,我们会用到优化算法来找到能最大化边界的系数值。

    SVM可能是最强大的即用分类器之一,在你的数据集上值得一试。

    09 bagging和随机森林

    随机森林是最流行和最强大的机器学习算法之一。 它是一种被称为Bootstrap Aggregation或Bagging的集成机器学习算法。

    bootstrap是一种强大的统计方法,用于从数据样本中估计某一数量,例如平均值。 它会抽取大量样本数据,计算平均值,然后平均所有平均值,以便更准确地估算真实平均值。

    在bagging中用到了相同的方法,但最常用到的是决策树,而不是估计整个统计模型。它会训练数据进行多重抽样,然后为每个数据样本构建模型。当你需要对新数据进行预测时,每个模型都会进行预测,并对预测结果进行平均,以更好地估计真实的输出值。

    图片

    Random Forest

    随机森林是对决策树的一种调整,相对于选择最佳分割点,随机森林通过引入随机性来实现次优分割。

    因此,为每个数据样本创建的模型之间的差异性会更大,但就自身意义来说依然准确无误。结合预测结果可以更好地估计正确的潜在输出值。

    如果你使用高方差算法(如决策树)获得良好结果,那么加上这个算法后效果会更好。

    10 Boosting和AdaBoost

    Boosting是一种从一些弱分类器中创建一个强分类器的集成技术。 它先由训练数据构建一个模型,然后创建第二个模型来尝试纠正第一个模型的错误。 不断添加模型,直到训练集完美预测或已经添加到数量上限。

    AdaBoost是为二分类开发的第一个真正成功的Boosting算法,同时也是理解Boosting的最佳起点。 目前基于AdaBoost而构建的算法中最著名的就是随机梯度boosting。

    图片

    AdaBoost

    AdaBoost常与短决策树一起使用。 在创建第一棵树之后,每个训练实例在树上的性能都决定了下一棵树需要在这个训练实例上投入多少关注。难以预测的训练数据会被赋予更多的权重,而易于预测的实例被赋予更少的权重。 模型按顺序依次创建,每个模型的更新都会影响序列中下一棵树的学习效果。在建完所有树之后,算法对新数据进行预测,并且通过训练数据的准确程度来加权每棵树的性能。

    • 数据的大小,质量和性质; 

    • 可用的计算时间; 

    • 任务的紧迫性; 

    • 你想要对数据做什么。

    是我们选择那种机器学习算法的关键

    scikit-learn作为一个丰富的python机器学习库,实现了绝大多数机器学习的算法,有相当多的人在使用,于是我这里很无耻地把machine learning cheat sheet for sklearn搬过来了,原文可以看这里。哈哈,既然讲机器学习,我们就用机器学习的语言来解释一下,这是针对实际应用场景的各种条件限制,对scikit-learn里完成的算法构建的一颗决策树,每一组条件都是对应一条路径,能找到相对较为合适的一些解决方法,具体如下:

     每文一语

    既然选择,就像当时一样,不问未来

    展开全文
  • 边缘计算系统中具有实时高效任务分配的机器学习 摘要 物联网(IoT)和机器学习(ML)技术在边缘计算系统中的广泛应用,为智能认知助手(ICA)在工作、学习、交通、医疗保健和其他活动中为人们提供帮助铺平了道路。一挑战...
  • 卡耐基梅隆大学计算机科学学院机器学习系主任Mitchell给出了机器学习算法的定义:对于某类任务TTT和性能度量PPP,一计算机程序被认为可以从经验EEE中学习是指,通过经验EEE改进后,它在任务TTT上由性能度量PPP衡量...
  • 点上方人工智能算法与Python大数据获取更多干货在右上方···设为星标★,第一时间获取资源仅做学术分享,如有侵权,联系删除转载于 :机器之心算法完美是重要的,但更重要的是成功部署,...
  • 联邦迁移学习是对上述二者的拓展,实际上包括了联邦学习和迁移学习两个部分,可以理解为横向联邦学习+迁移学习,和纵向联邦学习+迁移学习。 有人说联邦学习使用了去中心化的概念,这个说法不准确。联邦学习的架构有...
  • 机器学习期末复习

    千次阅读 2020-12-23 19:14:21
    线性回归 1.原理: 线性回归就是能够用一直线较为精确地描述数据之间的关系,这样当出现新的数据的时候,就能够预测出一简单的值。... (4)蕴含机器学习中的很多重要思想。  (5)能解决回归问题。
  • 机器学习的三基本要素

    千次阅读 2021-03-20 20:05:46
    对于一个机器学习任务,首先要确定其输入空间???? 和输出空间????.不同机器学习任务的主要区别在于输出空间不同.在二分类问题中???? = {+1, −1},在???? 分类问题中???? = {1, 2, ⋯ , ????},而在回归问题中????...
  • 李宏毅2021春季机器学习课程-第二节机器学习任务攻略笔记。
  • 机器学习的7步骤

    千次阅读 2021-05-09 00:46:26
    点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 机器学习是技术爱好者中高度关注的领域。作为人工智能(AI)的一分支,它基本上是一种算法或模型,可...
  • 我们先考虑一个任务:从照片中识别出某位友人。对大多数人来说,就算照片光线不足,或是友人刚理过发,或是换了新衣服,要认出他来也是轻而易举的事。但若是要在计算机上编程来解决这个问题,应当如何开始呢?恐怕谁...
  • 机器学习和联邦学习

    千次阅读 2021-01-07 18:14:48
    假设双方各自建立一个任务模型, 每个任务可以是分类或预测, 而这些任务也已经在获得数据时有各自用户的认可,那问题是如何在 A 和 B 各端建立高质量的模型。由于数据不完整(例如企业 A 缺少标签数据,企业 B 缺少用户...
  • 机器学习-泛化能力

    千次阅读 2021-02-20 23:25:57
    2.什么是好的机器学习模型的提出 3.泛化误差 4.模型泛化能力的评价标准 4.提高泛化能力 5.举例 6.相关引用文献 1.什么是泛化能力 百度百科解释:机器学习算法对新鲜样本的适应能力。 更加具体的解释:学习到...
  • 机器学习期末总结

    千次阅读 多人点赞 2021-01-05 21:01:59
    很多不考的没写,仅供参考 第1章 绪论 1.基本术语 记录:如(色泽=青白;敲声=浊响)的一对括号是一条记录 数据集:记录的集合 示例/特征向量:关于一事件或对象的...2.学习任务(根据训练数据是否有标记信息) 监.
  • 文章目录一、什么是机器学习二、机器学习的流程(一)数据收集(二)数据预处理(三)特征工程(四)模型构建和训练三、机器学习该如何学(一)AI时代首选Python(二)PyCharm可视化编辑器和Anaconda大礼包1、...
  • 从西洋跳棋开始机器学习

    千次阅读 2021-10-23 10:40:08
    机器学习定义 对于某类任务T和性能度量P,如果一计算机程序在T上以P衡量的性能指标随着经 验E而自我完善,那么我们称这计算机程序在从经验E中学习 例如,对于学习下西洋跳棋的计算机程序,它可以通过和自己下棋...
  • 机器学习】Meta-Learning(元学习)

    千次阅读 2021-11-14 09:15:43
    文章目录前言从传统学习引出元学习对比机器学习和元...传统的机器学习方法是针对一特定的,一般是有大量数据的数据集 ,试图学习出一预测模型 ,使得模型对于测试集上的数据的预测有最小的误差。这思路在数据集 D
  • 【导读】:全面介绍机器学习发展的历史,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、Deep Learning。 自科学技术和人工智能最初发展开始,科学家Blaise Pascal和Von Leibniz就思考着如何制造一台像...
  • 天池机器学习任务

    千次阅读 2021-04-06 16:57:30
    天池机器学习任务一 基于逻辑回归的分类预测
  • 机器学习(ML, machine learning)在药物发现中的受欢迎程度持续增长,取得了令人印象深刻的结果。随着其使用的增加,其局限性也变得明显。这些局限性包括它们对大数据的需求、数据的稀疏性以及缺乏可解释性。此外,...
  • 机器学习练习题

    千次阅读 2021-11-16 10:08:00
    机器学习考试练习题单项选择题多项选择题判断题填空题简答题 单项选择题 1.在NumPy中创建一元素均为0的数组可以使用( )函数。 [A] A.zeros( ) B.arange( ) C.linspace( ) D.logspace( ) 2.通常( )误差作为...
  • 实验四:神经网络学习 ...1.2模型表示:将存储在ex4weights.mat中的网络参数θ(1),θ(2)由ex4.m加载到Theta1和 Theta2 这两个参数中。 1.3前馈与损失函数:在nnCostFunction.m 中添加代码以返回损失: 1
  • 样本量极少如何机器学习

    千次阅读 2021-01-12 11:03:00
    (2)基于弱标记样本或无标记样本得到更多目标class样本,主要包括半监督学习和主动学习两类。半监督学习的典型例子是Positive-Unlabeled Learning,很多Two-step算法通过正样本和无标记样本训练分类器,直接扩大正...
  • 从上边的机器学习和深度学习的流程图我们可以看到,两个流程的输入和输出都是相同的,输入都是一张小汽车的图片,出处都是识别为小汽车的结果输出,到底是不是一辆小汽车。 那么在这个过程中到底发生了什
  • 机器学习(一)——发展历程

    千次阅读 2021-01-26 17:48:46
    机器学习(一)——发展历程 引言 人工智能(英语:artificial intelligence,缩写为AI)究竟是什么?目前难以精确定义 人工智能于一般教材中的定义领域是“智能主体(intelligent agent)的研究与设计”,智能主体...
  • 本周主要对大型机器学习项目的构建和使用有了一些认识
  • 机器学习基础知识点

    千次阅读 2021-10-24 14:38:12
    机器学习基础知识点 文章目录机器学习基础知识点监督学习回归线性回归岭回归lasso回归分类k最近邻分类朴素贝叶斯分类logistic回归支持向量机其他随机梯度下降线性判别分析决策树无监督学习聚类k均值分层次聚类谱聚类...
  • 机器学习中,一些比较流行方法的包括:支持向量机(SVM)、人工神经网络(ANN)、聚类、k-最近邻、决策树和深度学习。OpenCV支持并实现几乎所有这些方法,并有详细的文档说明。 OpenCV 4 机器学习算法 OpenCV...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 266,180
精华内容 106,472
关键字:

机器学习的两个任务