机器学习实战
Telescope@moon
这个作者很懒,什么都没留下…
展开
-
看了《从本质如何理解机器学习》的笔记,纯小白的笔记
人工智能>机器学习>深度学习机器学习是实现人工智能的一种方法,训练机器深度学习,实现机器学习的一种方法机器学习算法可以分为监督学习(如分类问题)、无监督学习(如聚类问题)、半监督学习、集成学习、深度学习和强化学习1有监督学习 通常是利用带有专家标注的标签的训练数据,学习一个从输入变量X到输入变量Y的函数映射,分为分类和回归。2无监督聚类问题 将相似的样...原创 2020-04-13 17:02:38 · 203 阅读 · 0 评论 -
使用Python进行文本分类(一)准备数据:从文本中构建词向量、训练算法:从词向量计算概率
准备数据:从文本中构建词向量def loadDataSet():#创建实验样本 postingList=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'], ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid']...原创 2018-07-31 19:53:07 · 3136 阅读 · 0 评论 -
示例:手写识别系统
构造使用k-近邻分类器的手写识别系统。 收集数据和准备数据,把 ‘trainingDigits’和’testDigits’拷到文件夹下 编写函数将图像格式化处理为一个向量def img2vector(filename): returnVect = zeros((1,1024)) fr = open(filename) for i in range(32): ...原创 2018-07-27 22:17:52 · 810 阅读 · 0 评论 -
使用Python进行文本分类(二)测试算法:根据实际情况修改分类器、准备数据:文档词袋模型
测试算法:根据实际情况修改分类器TabError: Inconsistent use of tabs and spaces in indentation解决方法: 这个错误是说你用了tab键作缩进了, 因为在python不像C/C++里用大括号来区分程序块,而是用缩进 所以缩进很重要你把Tab都换成空格就好了 def classifyNB(vec2Classify, p0Vec,...原创 2018-07-31 21:43:24 · 979 阅读 · 0 评论 -
示例:使用朴素贝叶斯过滤垃圾邮件
准备数据:切分文本>>> mySent='This book is best book on Python or M.L. I have ever laid eyes upon.'>>> mySent.split()['This', 'book', 'is', 'best', 'book', 'on', 'Python', 'or', 'M.L.',...原创 2018-08-01 15:48:14 · 1076 阅读 · 0 评论 -
示例:使用朴素贝叶斯分类从个人广告中获取区域倾向
下面将使用来自不同城市的广告训练一个分类器,然后观察分类器的效果。我们的目的并不是使用该分类器进行分类,而是通过观察单词和条件概率值来发现与特定城市相关的内容。 收集数据:导入RSS源Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。 使用iteritems()这个函数得到我们字典中的所有元素,就是键-值对{‘yes’:2,’ma...原创 2018-08-01 21:01:21 · 1385 阅读 · 0 评论 -
训练算法:使用梯度上升找到最佳参数、分析数据:画出决策边界
利用Logistic回归进行分类的主要思想是:根据现有数据对分类边界建立回归公式,以此进行分类。最优化算法:梯度上升法和一个改进的随机梯度上升法训练算法:使用梯度上升找到最佳参数 .read() 每次读取整个文件,.readlines()自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for… in … 结构进行处理,.readline()每次只读取一行,通常比 .r...原创 2018-08-02 15:44:47 · 1265 阅读 · 0 评论 -
训练算法:随机梯度上升
训练算法:随机梯度上升>>> np.ones(5)array([ 1., 1., 1., 1., 1.])>>> np.ones((5,), dtype=np.int)array([1, 1, 1, 1, 1])>>> np.ones((2, 1))array([[ 1.], [ 1.]])>...原创 2018-08-02 19:13:36 · 1522 阅读 · 0 评论 -
示例:从疝气病症预测病马的死亡率
准备数据:处理数据中的缺失值 当数据丢失时,给出了一些方法来解决这个问题。 1、使用可用特征的均值来填补缺失值; 2、使用特殊值来填补缺失值,如-1; 3、忽略有缺失值的样本; 4、使用相似样本的均值填补缺失值; 5、使用另外的机器学习算法预测缺失值。 在预处理阶段做两件事: 第一,所有的缺失值必须用一个实数值来替代,因为我们使用Numpy数据类型不允许包含缺失值。这里选择实数0来...原创 2018-08-02 20:24:02 · 3794 阅读 · 0 评论 -
约会网站预测函数
def classifyPerson(): resultList = ['not at all','in small doses','in large doses'] percentTats = float(raw_input("percentage of time spent playing video games?")) ffMiles = float(raw_inpu...原创 2018-07-27 18:36:57 · 339 阅读 · 0 评论 -
分类器对约会网站的测试代码
def datingClassTest(): hoRatio = 0.10#测试数据占的比重 datingDataMat,datingLabels = file2matrix('datingTestSet2.txt') normMat,ranges,minVals = autoNorm(datingDataMat)#数值归一化 m = normMat.shape[0...原创 2018-07-27 18:22:49 · 512 阅读 · 0 评论 -
决策树的测试和存储、示例:使用决策树预测隐形眼镜类型
测试算法:使用决策树的分类函数def classify(inputTree,featLabels, testVec):#传入(myTree,labels,[1,0]),结果是‘no’labels = ['no surfacing','flippers'] #myTree {'no surfacing': {0: 'no', 1:{'flippers':{0: 'no', 1: 'y...原创 2018-07-30 11:22:23 · 1467 阅读 · 0 评论 -
划分数据集
如果要在一个二维数据散点图中间画一条线将数据集分开,是按照x划分还是y划分呢from math import logdef createDataSet(): dataSet = [[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'...原创 2018-07-28 18:19:01 · 710 阅读 · 0 评论 -
递归构建决策树
def majorityCnt(classList):#传入的参数是已经划分完所有特征之后的数据集,例如[['yes'],['yes'],['maybe']] classCount={}#创建一个字典 for vote in classList: if vote in classList: classCount[vote] = 0 ...原创 2018-07-28 21:07:45 · 1273 阅读 · 0 评论 -
Matplotlib注解
import matplotlib.pyplot as plt#定义文本框和箭头模式decisionNode = dict(boxstyle="sawtooth", fc="0.8")leafNode = dict(boxstyle="round4", fc="0.8")arrow_args = dict(arrowstyle="&原创 2018-07-28 21:56:10 · 218 阅读 · 0 评论 -
k-临近算法
k-近邻算法 在命令行按顺序导入from numpy import *import operatordef createDataSet(): group = array([1.0,1.1],[1.0,1.0],[0,0],[0,0.1]) labels = ['A','A','B','B'] return group,labelsdef classify0(...原创 2018-07-26 16:15:10 · 209 阅读 · 0 评论 -
构造注解树
def getNumLeafs(myTree): numLeafs = 0 firstStr = list(myTree.keys())[0]# firstStr = 'no surfacing’ secondDict = myTree[firstStr]#secondDict = myTree[firstStr] = {0: 'no', 1:{'flipp...原创 2018-07-29 21:27:24 · 457 阅读 · 0 评论 -
将文本记录转换为Numpy的解析程序
from numpy import *import operator'''def createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B'] return group,labelsdef classify0(inX,dataSet,lab...原创 2018-07-26 17:17:36 · 433 阅读 · 0 评论 -
分析数据:使用Matplotlib创建散点图
>>> import kNN>>> from imp import reload>>> reload(kNN)<modul原创 2018-07-26 18:30:07 · 428 阅读 · 1 评论 -
准备数据:归一化数值
数字差值最大的属性对计算结果的影响最大,每年获取的飞行常客里程数对于计算结果的影响远大于其他两项,但这三项的重要性是一致的,为了使三项数值在结果上是一致的,所以采用的方法是数值归一化,将取值范围处理为0到1或者-1到1之间。公式: newValue = (oldValue-min)/(max-min) 最小的值为0,最大的值为1,中间的数按大小占不同的比值新函数autoNo...原创 2018-07-26 19:10:41 · 514 阅读 · 0 评论 -
计算给定数据集的香农熵
构造决策树,面对一个数据集,首先找到具有决定性作用的特征,对每个特征进行评估,然后根据特征划分数据集。 如果分支下的数据属于同一类型,即停止,不属于同一类型,重复划分数据子集。 采用量化的方法判断如何划分数据 在划分数据集之前之后信息发生的变化称为信息增益,获得信息增益最高的特征就是最好的选择。from math import log#math模块中的对数函数def calcSh...原创 2018-07-28 15:00:30 · 3006 阅读 · 0 评论