Machine Learning
文章平均质量分 76
梦否
【@】bug修复,程序代做
展开
-
《神经网络与深度学习》- 常见的深度学习框架
在深度学习中,一般通过误差反向传播算法来进行参数学习.采用手工方式来计算梯度再写代码实现的方式会非常低效,并且容易出错.此外,深度学习模型需要的计算机资源比较多,一般需要在 CPU 和 GPU 之间不断进行切换,开发难度也比较大. 因此,一些支持自动梯度计算、无缝CPU和GPU切换等功能的深度学习框架就应运而生.比较有代表性的框架包括:Theano、Caffe、TensorFlow、Pytorch、飞桨(PaddlePaddle)、Chainer和MXNet等....原创 2020-05-15 16:43:08 · 527 阅读 · 0 评论 -
《神经网络与深度学习》阅读笔记(1)
书籍地址:https://github.com/henryhust/deeplearning-networkJohn McCarthy提出了人工智能的定义:人工智能就是要让机器的行为看起来就像是人所表现出的智能行为一样.目前,人工智能的主要领域大体上可以分为以下几个方面:(1) 感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感知和加工.主要研究领域包括语音信息处理和计算机视觉等...原创 2020-05-05 15:50:49 · 329 阅读 · 0 评论 -
Numpy搭建两层神经网络
在学习pytorch的时候,看见了标题的东西,就简单记录下自己的理解。视频地址:here时间:66:32假定建立的神经网络当前没有偏置b,那么神经网络的结构构成如下:hidden=ReLU(x∗w1)y^=hidden∗w2loss=(y^−y)2\begin{aligned}& hidden = ReLU( x*w_1) \\& \hat y = hidden*w_2 \\&loss = (\hat y - y)^2\end{aligned}hidden=R原创 2021-01-20 21:43:32 · 359 阅读 · 0 评论 -
pytorch&TensorFlow&Keras的安装
Requirements and InstallationPython version >= 3.6PyTorch version >= 1.4.0TensorFlow version >= 1.14Keras version >= 2.3.11. 安装PyTorch直接访问官网找安装方式进行安装,安装说明地址:here安装命令:# CPU onlypip install torch==1.4.0+cpu torchvision==0.5.0+cpu -f h原创 2021-01-20 12:46:16 · 882 阅读 · 1 评论 -
支持向量机(一)
支持向量机(support vector machines, SVM)是一种二分类模型。可分为三类:线性可分支持向量机;即训练数据线性可分,又叫硬间隔支持向量机。线性支持向量机;即训练数据近线性可分,又叫软间隔支持向量机。非线性支持向量机;即训练数据线性不可分,通过使用核技巧及软间隔最大化,学习非线性支持向量机。1. 线性可分支持向量机即训练数据线性可分。我们假定我们学习到的分离超平面为:wTx+b=0w^Tx+b=0wTx+b=0那么,相应的分类决策函数可以简单的用下面的符号函数来表原创 2021-01-18 15:55:00 · 368 阅读 · 0 评论 -
逻辑回归(二)
照例,还是开始一个简单的案例实践,数据集:here。1. 数据集读取和查看import numpy as npimport matplotlib.pyplot as plt%matplotlib inline# 1. 获取数据集内容def getDataset(path="testSet.txt"): dataset = [] with open(path, mode="r", encoding="utf-8") as f: lines = f.readline原创 2021-01-17 11:11:45 · 179 阅读 · 0 评论 -
逻辑回归(一)
需要明白下面两点:逻辑回归是一种二分类算法;逻辑回归是一种概率判别模型;1. 算法在逻辑回归中使用了Sigmoid函数作为自己的概率判别,在逻辑回归中假设函数:y^=hθ(x)=g(θTx)=11+e−θTx\hat y = h_\theta(x) = g(\theta^Tx) = \frac{1}{1+e^{-\theta^T x}}y^=hθ(x)=g(θTx)=1+e−θTx1其中,g(z)=11+e−zg(z) = \frac{1}{1+e^{-z}}g(z)=1+e原创 2021-01-16 16:59:19 · 188 阅读 · 1 评论 -
sklearn进行垃圾邮件分类
1. 数据读取# 1. 数据集的读取import osdataset_x = []dataset_y = []for filename in list(os.listdir("spam")): file_content = None with open("spam/" + filename, mode="r", encoding="utf-8") as f: file_content = f.readlines() content = "" for原创 2021-01-10 11:10:33 · 2028 阅读 · 0 评论 -
python词云图片生成
在进行垃圾邮件分类的时候,虽然可以通过预先类别和现在预测类别的对比来看垃圾与非垃圾邮件的类别,但是还是没有直接看词云图片比较直观。所以这里就来做下简单的词云生成。1. 安装第三方库pip install wordcloud -i https://pypi.douban.com/simple2. 使用来源:sklearn 实现中文数据集的垃圾邮件分类def showWordCloud(word_list): wc = WordCloud( background_color原创 2021-01-10 10:16:45 · 496 阅读 · 0 评论 -
朴素贝叶斯(二)
在上篇中,基本了解了朴素贝叶斯的原理,以及简单的实现。这里就来个简单的案例。该案例属于经典的垃圾邮件分类案例,数据集的地址,还是来源于:here。然后数据集地址具体在这里。参考文章:here不妨看看数据集,垃圾邮件有很多个文档:每个文档中是其内容:那么,我们知道数据集DDD,这里我用wiw_iwi表示文档中的有效单词,用spamspamspam表示垃圾邮件,nospamnospamnospam表示非垃圾邮件,那么,给定一个文档它是垃圾邮件的概率可以简单表示为:p(spam∣D)=p原创 2021-01-06 22:14:44 · 126 阅读 · 2 评论 -
朴素贝叶斯算法(一)
朴素贝叶斯算法的原理比较简单,就是求给定的点在给定的分布下的概率是多少,不妨百度一下:最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。看了下,解释不如一个例子来的直观,这里就直接复制一个例子,地址:假设有这么一些数据:症状职业疾病打喷嚏护士感冒打喷嚏农夫过敏头痛建筑工人脑震荡头痛建筑工人感冒打喷嚏教师感冒头痛教师脑震荡原创 2021-01-04 22:59:14 · 176 阅读 · 0 评论 -
决策树(二)
自己动手写一个决策树的代码还是比较麻烦,就如上一篇文章中,需要依次计算熵、条件熵、信息增益,然后划分子数据集,进行递归的树的建立。 总之比较麻烦。所以,还是使用别人造好的轮子比较舒服,就如sklearn中就提供了决策树模型,用于解决分类和回归问题。本篇,就来简单的使用下。官方网站首先,划分数据集为特征和标签,然后将之数字化:train_x = dataset[:, 0:-1]for clo in range(len(train_x[0])): clomn_features =原创 2021-01-03 12:41:59 · 90 阅读 · 0 评论 -
决策树(一)
照例,还是贴出大佬的博客地址:here。决策树,我们可以简单的看作一个二叉树,在数据结构中我们都知道使用决策树可以很快的对一个数据进行二分查找,那么使用决策树进行预测(或者说分类)也是同理,只要使用数据建立了一颗二叉树,那么在下一个预测数据到达的时候,可以很快的对该数据进行分类。1. 预备知识1.1 熵参考视频:here熵是一个热力学概念的词,其物理意义是体系混乱程度的度量。在计算机中常用来表示随机变量的不确定性,定义如下:H(p)=−∑inpilogpiH(p) = -\sum_i^np_i原创 2021-01-03 12:12:54 · 249 阅读 · 0 评论 -
K-近邻算法(二)
手写数字识别照例,数据集来源于这篇博客,here,这里粘贴下下载地址:数据集和实现代码下载。首先对数据集进行读取,即:import numpy as npimport osdef getDataset(train_filepath = "trainingDigits", test_filepath = "testDigits"): # 读取数据文件 train_files = os.listdir(train_filepath) test_files = os.listd原创 2020-12-31 09:46:59 · 174 阅读 · 0 评论 -
K-近邻算法(一)
在网上对这个算法有很多详尽的描述,而且在B站上还有相关的视频讲解,如这篇博客:here。这里,在这篇博客中,仅仅从简单的总结和应用方面来记录下这个最简单的机器学习算法。1. 原理1.1 数据集在使用k近邻法(k-nearest neighbor, k-NN)来进行类别的分类的时候,要求我们的训练数据集是有标签的数据,即:每组训练数据都要有标准答案,知道所属的正确类别。1.2 算法思想 对于训练数据集中的每条数据,我们可以将之看作一个集合空间中的一个点,而这个空间的维度也就是每条数据的原创 2020-12-30 21:28:49 · 200 阅读 · 0 评论 -
感知机(perceptron)
感知机定义二分类线性分类模型。前提:数据集线性可分(即存在某个超平面能够将数据集完全正确的划分到超平面的两侧)。输入:实例的特征向量。输出:实例的类别,+1或者-1。目的:找到那么一个超平面可以将实例划分为正负两类分离开。至于这个超平面该如何表示。不妨这么思考:空间中有两堆数据,我们需要用一个平面将它分开,故而我们最简单的做法就是使用能分开这两堆数据的任意一个平面,去作为我们的分类超平...原创 2019-10-29 14:53:04 · 321 阅读 · 0 评论 -
使用matplotlib绘制散点图
title: 使用matplotlib绘制散点图date: 2019-10-6 10:35:37author: 无涯明月toc: truecategories: 机器学习tags:Machine Learning简单案例import matplotlib.pyplot as pltimport numpy as npif __name__ == '__main__':...原创 2019-10-17 11:33:14 · 3511 阅读 · 0 评论