机器学习实战 第1,2章

深度学习(DL)是机器学习(ML)的主要算法,而机器学习(ML)是人工智能(AI)的核心功能。

机器学习分类三类:监督学习,非监督学习,强化学习。

监督学习一般使用两种类型的目标变量:标称型和数值型。

为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据和测试数据。当机器学习程序开始运行时,使用训练样本集作为算法的输入,训练完成之后输入测试样本。


选择合适的算法:
首先考虑使用机器学习算法的目的。如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习算法。确定选择监督学习算法之后,需要进一步确定目标变量的类型,如果目标变量是离散型,则可以选择分类器算法;如果目标变量是连续型的数值,则需要选择回归算法。
一般来说,发现最好算法的关键环节是反复试错的迭代过程。


使用机器学习算法的一般步骤:
1. 收集数据
2. 准备输入数据
3. 分析输入数据(肉眼分析,找出明显错误的数据)
4. 训练算法
5. 测试算法
6. 使用算法


kNN算法:
找出未知数据的特征与已知数据的特征最近的前k个一致数据,在这前k个数据中出现最多的那个结果就是计算出的结果。
特征的度量可能需要归一化处理。


决策树算法:

from math import log

def shannonEntropy(dataSet):
    labels = {}
    count = len(dataSet)
    for row in dataSet:
        label = row[-1]
        labels[label] = labels.get(label, 0) + 1

    ret = 0.0
    for label in labels:
        prob = float(labels[label]) / count
        ret -= prob * log(prob, 2)

    return ret

def createDataSet():
    dataSet = [[1, 1, 'yes'],
               [1, 1, 'yes'],
               [1, 0, 'no'],
               [0, 1, 'no'],
               [0, 1, 'no']]
    labels = ['no surfacing', 'flippers']
    return dataSet, labels

def splitDataSet(dataSet, axis, value):
    retDataSet = []
    for row in dataSet:
        if row[axis] == value:
            reducedVec = row[:axis]
            reducedVec.extend(row[axis + 1:])
            retDataSet.append(reducedVec)

    return retDataSet

def chooseBestFeatureToSplit(dataSet):
    numFeatures = len(dataSet[0]) - 1
    baseEntropy = shannonEntropy(dataSet)
    print baseEntropy
    bestInfoGain = 0.0
    bestFeature = -1
    for i in range(numFeatures):
        featList = [tmp[i] for tmp in dataSet]
        uniqueVals = set(featList)
        newEntropy = 0.0
        for value in uniqueVals:
            subDataSet = splitDataSet(dataSet, i, value)
            prob = len(subDataSet) / float(len(dataSet))
            newEntropy += prob * shannonEntropy(subDataSet)
        infoGain = baseEntropy - newEntropy
        print newEntropy
        if infoGain > bestInfoGain:
            bestInfoGain = infoGain
            bestFeature = i

    return bestFeature

def createTree:
	# createTree
	pass


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值