2015-09-21 19:43:44 baidu_26550817 阅读数 421
  • 机器学习--线性回归数学推导视频教学

    线性回归数学推导是机器学习的基石,是人工智能的算法基础, 可以被广泛的应用在在工作和学习。本节课就带领同学们从零开始一步一步的推导线性回归。课程内容包括矩阵转换、误差值分析、似然函数、小二乘、结果推导。 任务作业: 设计并实现一个三层架构的员工管理系统。要求: 1、数据库及其表自行设计,遵循数据库及表设计的一般命名规则 2、要求有管理员的登录功能及对员工信息的增删改查 3、功能的实现严格采用三层架构的设计框架,注意命名的一般规范 4、采用B/S架构,界面大方美观 5、思考下三层架构与MVC框架有什么区别 (温馨提示: 注意 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4298 人正在学习 去看看 陆永剑

1. K-近邻算法(KNN)

监督学习的线性回归算法
采取测量不同特征之间的距离方法进行分类

  1. 计算未知的数据A与所有已知样本S(n)的距离,
  2. 按照距离递增排序,找到K个距离A最近的样本S1(k),
  3. 按照S1(k)的类型来判断A的类型

2. 决策树(C4.5)

监督分类算法
1. 划分数据集()
2. 递归构建决策树
3. 使用决策树进行分类
例如:根据水生和陆生初步判断是否是鱼类。


3. 朴素贝叶斯(NB)

局部加权线性回归
使用条件概率进行分类
例如有两个类别A,B以及数据c,如果c属于A的概率大于c属于B的概率,则将c归为A类


4. logistic回归

训练非线性函数用于分类
把测试集上每个特征向量乘以最优化方法得来的回归系数,再将该成绩结果求和,最后输入Sigmoid函数,如果对应的值大于0.5就预测类别标签为1,否则为0.


5. 支持向量机(SVM)

利用核函数将数据映射到高维空间,寻找最有超平面


6. 树回归


7. k-均值(K-mean)

无监督聚类算法
先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:
1)没有(或最小数目)对象被重新分配给不同的聚类。
2)没有(或最小数目)聚类中心再发生变化。
3)误差平方和局部最小。


8. Apriori算法

寻找数据间的频繁项集
例如:发现毒蘑菇的相似特征,根据相似特征判断另一蘑菇是否有毒。


9. FP-growth算法

高效发现数据的频繁项集


10. 最大期望算法(EM)


11. PageRank算法

网页排名
一个页面的“得票数”由所有链向它的页面的重要性来决定,到一个页面的超链接相当于对该页投一票。一个页面的PageRank是由所有链向它的页面(“链入页面”)的重要性经过递归算法得到的。一个有较多链入的页面会有较高的等级,相反如果一个页面没有任何链入页面,那么它没有等级。

2019-12-29 23:04:11 robot_learner 阅读数 205
  • 机器学习--线性回归数学推导视频教学

    线性回归数学推导是机器学习的基石,是人工智能的算法基础, 可以被广泛的应用在在工作和学习。本节课就带领同学们从零开始一步一步的推导线性回归。课程内容包括矩阵转换、误差值分析、似然函数、小二乘、结果推导。 任务作业: 设计并实现一个三层架构的员工管理系统。要求: 1、数据库及其表自行设计,遵循数据库及表设计的一般命名规则 2、要求有管理员的登录功能及对员工信息的增删改查 3、功能的实现严格采用三层架构的设计框架,注意命名的一般规范 4、采用B/S架构,界面大方美观 5、思考下三层架构与MVC框架有什么区别 (温馨提示: 注意 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4298 人正在学习 去看看 陆永剑

更多专业的人工智能相关文章,微信搜索  : robot-learner , 或扫码

机器学习算法是一个大的家族,是狭义上的统计分支,也是广义上的人工智能基础。按照不同的标准,机器学习算法可以有不同的分类方式。在下一章节我们深入讨论每一种典型的机器学习算法原理之前,我们先看一下如何对机器学习算法进行分类。


1.    监督学习(supervised learning)v.s. 非监督学习(unsupervised learning)v.s. 强化学习(reinforcement learning)。
  1)    监督学习
  通过提供许多对输入(X)和对应的输出(Y)的历史数据,通过优化的方式找到最佳的映射关系。 一旦从训练数据学到了这一    种映射关系,我们就可以随时根据新的输入数据 (X),从而预测给出最佳的结果(Y);比如常见的分类问题。
  2)    非监督学习
  和监督学习不同,输入只有X,而没有Y。是通过数据自身的特征,把相似的数据聚合到一起,并不涉及Y变量。比如聚类问     题,把一堆数据按照相似性聚合到不同的种类。
 3)    强化学习
  研究在一个特定环境中如何采取每一步的行动,从而获得最大的累积奖励。比如电子游戏中的打坦克游戏如何避免对方攻击和   击毁最多的坦克。 强化学习和标准的监督学习不同,它并不是通过提供许多对正确的输入和输出(X,Y)形式去寻找答案,也不   用去纠结优化过程中的次优解,而是通过学习主体所在环境对主体行动的反馈,在已有知识和未知领域中去寻求平衡,追求累计  奖励的最大化。强化学习在某种形式上最贴近人们通常意义上的人工智能,比如机器人自动规划路线和下围棋。
2.    参数化(parametric)v.s. 非参数化(non-parametric)
  1)    参数化
  参数化算法需要假设底层数据符合参数化的方程形式。比如朴素贝叶斯模型,回归模型,和简单的神经元网络算法。参数化算     法具有形式简单,优化速度比较快,需要数据量相对较少等优点。
  2)    非参数化
  非参数化算法对底层数据遵守的规律不做任何假设,直接依靠数据得到模型。比如决策树算法,kNN算法(k最邻近算法)。非   参数算法同参数化算法相比更加灵活,效果有时候比较强大。但是这种方法需要比较多的数据才能达到较好的效果,速度较慢,   需要警惕过度拟合。

3.    生成式(generative)v.s. 判别式(discriminative):
机器学习算法根据自变量X寻求目标变量Y的预测,本质上是寻求条件概率函数P(Y|X)的表达形式,即已知X得到Y的条件概率(比如已知我们身在东北,问冬天下雪的概率)。
1)    生成式
生成式算法假设并且从训练数据中得到目标变量Y的分布方程P(Y),和自变量特征X的条件分布方程P(X|Y)。然后根据贝叶斯公式,我们可以得到最终的预测方程P(Y|X)。比较典型的例子是朴素贝叶斯算法。
2)    判别式
判别式算法直接根据数据去训练并且得到预测方程P(Y|X),比如逻辑回归算法。
4.    分布式 v.s. 非分布式
1)    分布式
分布式算法是指那些可以很好的以并行化编程方式解决,从而依托大数据计算平台,针对单机不能处理的大量数据训练模型的算法。这些算法包括K-means聚类算法,朴素贝叶斯,逻辑回归,PageRank等。
2)    非分布式
许多效果优异的机器学习算法并不容易被改造成分布式计算方式。比如支持向量机(SVM),梯度增强算法(GBM)等。

2019-07-26 16:24:45 Hampton_Chen 阅读数 157
  • 机器学习--线性回归数学推导视频教学

    线性回归数学推导是机器学习的基石,是人工智能的算法基础, 可以被广泛的应用在在工作和学习。本节课就带领同学们从零开始一步一步的推导线性回归。课程内容包括矩阵转换、误差值分析、似然函数、小二乘、结果推导。 任务作业: 设计并实现一个三层架构的员工管理系统。要求: 1、数据库及其表自行设计,遵循数据库及表设计的一般命名规则 2、要求有管理员的登录功能及对员工信息的增删改查 3、功能的实现严格采用三层架构的设计框架,注意命名的一般规范 4、采用B/S架构,界面大方美观 5、思考下三层架构与MVC框架有什么区别 (温馨提示: 注意 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4298 人正在学习 去看看 陆永剑

机器学习相关岗位在这个人工智能时代还是非常吃香的,经常听到别人几十万、上百万年薪,十分羡慕。在网上搜罗了几份机器学习的教学视频,在这里分享给大家。
更多资源和优质文章,欢迎关注公众号:代码视界

 

Python3入门机器学习-经典算法与应用
链接: https://pan.baidu.com/s/1NvoRVZbzjGvUzVqmH-RTXQ 提取码: s3fc 复制这段内容后打开百度网盘手机App,操作更方便哦

 

吴恩达/李宏毅机器学习教学视频

吴恩达和李宏毅两位老师的机器学习教学视频获取方式:
关注公众号:代码视界,回复“机器学习”获取下载地址。

 

机器学习算法地图


 

2019-01-08 13:14:12 qq_41732387 阅读数 33
  • 机器学习--线性回归数学推导视频教学

    线性回归数学推导是机器学习的基石,是人工智能的算法基础, 可以被广泛的应用在在工作和学习。本节课就带领同学们从零开始一步一步的推导线性回归。课程内容包括矩阵转换、误差值分析、似然函数、小二乘、结果推导。 任务作业: 设计并实现一个三层架构的员工管理系统。要求: 1、数据库及其表自行设计,遵循数据库及表设计的一般命名规则 2、要求有管理员的登录功能及对员工信息的增删改查 3、功能的实现严格采用三层架构的设计框架,注意命名的一般规范 4、采用B/S架构,界面大方美观 5、思考下三层架构与MVC框架有什么区别 (温馨提示: 注意 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4298 人正在学习 去看看 陆永剑

本文提供了机器学习knn算法实现
数据下载地址链接:https://pan.baidu.com/s/13EYucdTlo8AjUc0RiFAawA
提取码:jpsw

from os import listdir
import numpy as np
import operator

# 数据准备,将图像转换为测试向量
def img2vector(filename):
    # 创建向量
    returnVect = np.zeros((1, 1024))
    # 打开数据文件,读取每行内容
    fr = open(filename)
    for i in range(32):
        # 读取每一行
        lineStr = fr.readline()
        # 将每行前 32 字符转成 int 存入向量
        for j in range(32):
            returnVect[0, 32 * i + j] = int(lineStr[j])
    return returnVect

#分类
def classify0(inX, dataSet, labels, k):
    """
    参数:
    - inX: 用于分类的输入向量
    - dataSet: 输入的训练样本集
    - labels: 样本数据的类标签向量
    - k: 用于选择最近邻居的数目
    """

    # 获取样本数据数量
    dataSetSize = dataSet.shape[0]

    # 矩阵运算,计算测试数据与每个样本数据对应数据项的差值
    diffMat = np.tile(inX, (dataSetSize, 1)) - dataSet #逐行相减

    # sqDistances 上一步骤结果平方和
    sqDiffMat = diffMat ** 2  #是该行的每一个数平方,不是矩阵的平方
    sqDistances = sqDiffMat.sum(axis=1) #每行相加 得到一个差的和的矩阵

    # 取平方根,得到距离向量
    distances = sqDistances ** 0.5

    # 按照距离从低到高排序
    sortedDistIndicies = distances.argsort() #排序的后索引的数组
    classCount = {}

    # 依次取出最近的样本数据
    for i in range(k):
        # 记录该样本数据所属的类别
        voteIlabel = labels[sortedDistIndicies[i]]
        classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1

    # 对类别出现的频次进行排序,从高到低
    sortedClassCount = sorted(
        classCount.items(), key=operator.itemgetter(1), reverse=True)

    # 返回出现频次最高的类别
    return sortedClassCount[0][0]

# 测试算法:使用 K 近邻算法识别手写数字
def handwritingClassTest():
    # 样本数据的类标签列表
    hwLabels = []

    # 样本数据文件列表
    trainingFileList = listdir('D:\python_exc\digits\TrainingDigits')
    m = len(trainingFileList)

    # 初始化样本数据矩阵(M*1024)
    trainingMat = np.zeros((m, 1024))

    # 依次读取所有样本数据到数据矩阵
    for i in range(m):
        # 提取文件名中的数字
        fileNameStr = trainingFileList[i]   #名字是带.txt的
        fileStr = fileNameStr.split('.')[0]  #得到的是"1_44"这种
        classNumStr = int(fileStr.split('_')[0])
        hwLabels.append(classNumStr)#得到第 i 个文本文件的标记,并存入数组

        # 将样本数据存入矩阵
        trainingMat[i, :] = img2vector('D:\python_exc\digits\TrainingDigits/%s' % fileNameStr) #第i个文件

    # 循环读取测试数据
    testFileList = listdir('D:\python_exc\digits\TestDigits')

    # 初始化错误率
    errorCount = 0.0
    mTest = len(testFileList)

    # 循环测试每个测试数据文件
    for i in range(mTest):
        # 提取文件名中的数字
        fileNameStr = testFileList[i]
        fileStr = fileNameStr.split('.')[0]
        classNumStr = int(fileStr.split('_')[0])

        # 提取数据向量
        vectorUnderTest = img2vector('D:\python_exc\digits\TestDigits/%s' % fileNameStr)

        # 对数据文件进行分类
        classifierResult = classify0(vectorUnderTest, trainingMat, hwLabels, 4) #用一个待测的 和整个样本比

        # 打印 K 近邻算法分类结果和真实的分类
        #print("测试样本 %d, 分类器预测: %d, 真实类别: %d" %
              #(i+1, classifierResult, classNumStr))

        # 判断K 近邻算法结果是否准确
        if (classifierResult != classNumStr):
            errorCount += 1.0

    # 打印错误率
    print("\n错误分类计数: %d" % errorCount)
    print("\n错误分类比例: %f" % (errorCount/float(mTest)))

handwritingClassTest()

在这里插入图片描述

2018-04-19 14:48:57 newmemory 阅读数 1055
  • 机器学习--线性回归数学推导视频教学

    线性回归数学推导是机器学习的基石,是人工智能的算法基础, 可以被广泛的应用在在工作和学习。本节课就带领同学们从零开始一步一步的推导线性回归。课程内容包括矩阵转换、误差值分析、似然函数、小二乘、结果推导。 任务作业: 设计并实现一个三层架构的员工管理系统。要求: 1、数据库及其表自行设计,遵循数据库及表设计的一般命名规则 2、要求有管理员的登录功能及对员工信息的增删改查 3、功能的实现严格采用三层架构的设计框架,注意命名的一般规范 4、采用B/S架构,界面大方美观 5、思考下三层架构与MVC框架有什么区别 (温馨提示: 注意 作业需写在CSDN博客中,请把作业链接贴在评论区,老师会定期逐个批改~~)

    4298 人正在学习 去看看 陆永剑

元算法将不同的分类器组合起来,具体使用有多种形式,可以是不同算法的集成,也可以是不同算法在不同设置下的集成,还可以是数据集不同部分分配给不同分类器之后的集成。

一、bagging:基于数据随机重抽样的分类器构建算法

自举汇聚法(bootstrap aggregating),也称为bagging方法,是在从原始数据集选择S次后得到S个新数据集的一种技术。新书记集和原始数据集大小相等。每个数据集都是通过在原始数据集中随机选择一个样本来进行替换得到的。替换意味着可以多次地选择同一样本,这一性质就允许新数据集中可以有重复的值,而原始数据集中某些值在新集合中则不出现。
在S个数据集建好之后,将某个学习算法分别作用于每个数据集就得到了S个分类器。当对新数据进行分类时,可以应用这S个分类器进行分类,选择分类器投票结果中最多的类别作为最后的分类结果。随机森林是比较常见的bagging方法。

二、boosting

boosting是一种与bagging很类似的技术。boosting通过集中关注被已有分类器错分的那些数据来获得新的分类器。由于boosting分类的结果是基于所有分类器的加权求和结果的,因此boosting与bagging不太一样。bagging中分类器的权重是相等的,而boosting中的分类器权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。

三、AdaBoost

AdaBoost是boosting方法的一个最流行的版本。弱分类器中的是指分类器的性能比随机猜测要略好,但也不会好太多,即在二分类的情况下弱分类器的错误率会高于50%,而“强”分类器的错误率将会低很多,这是AdaBoost算法的理论问题来源。

AdaBoost的运行过程:

训练数据中的每个样本,并赋予一个权重,这些权重构成了向量D。一开始这些权重都初始化为相等值。首先在训练数据上训练出一个弱分类器并计算该分类器的错误率,然后再同一数据集上再次训练弱分类器。在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重将会降低,而第一次分错的样本的权重就会提高。为了从所有的弱分类器中得到最终的分类结果,AdaBoost对每个分类器都分配了一个权重alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。错误率 = 未正确分类的样本数目 / 所有样本数目

机器学习-吴恩达

阅读数 43

没有更多推荐了,返回首页