
机器学习
weixin_43216017
承蒙大家关注,研究生后期到现在真的很忙,过去基本上属于有朋友问我问题我就更新一篇,现在没有时间去学习和撰写了,以后估计就是不定期更新,有机会很希望和大家交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python实现排序算法——计数排序
使用python实现桶排序,桶排序和之前我们说过的插入排序,选择排序等都不一样,它是非比较类的排序。前面我们所讲的排序都是两两比较之后交换位置。 桶排序主要的思想:假设我们有n个整数,范围是[x,y][x,y][x,y],现在我们要对其进行排序。首先我们设置(y−x+1)(y-x+1)(y−...原创 2019-05-17 19:55:31 · 605 阅读 · 1 评论 -
python :中英文文本预处理(包含去标点分词词干提取)
python :中英文文本预处理(包含去标点/分词/词干提取)       在做文本分析之前,一般我们都需要进行文本的预处理。这一步其实和做数据时的数据清洗非常的相像。在对文本进行清洗的时候,我们需要分成中文和英文两种语言来进行,因为语言的不同,我们需要进行的操作也不同:英文:大小写的处理,标点符号的处理,文本的分词,去除停用词,以及词干的提取(cle...原创 2019-03-07 23:50:01 · 21108 阅读 · 8 评论 -
机器学习 ——特征工程 01-04
百面机器学习 —— 第一章 特征工程 01-0401 特征归一化问:什么样的变量需要特征归一化?答:数值型变量,类别型变量是不需要的问:为什么要特征归一化?答:首先,为了消除量纲对数据分析的影响。比如当我们衡量一个人的身高体重对健康的影响且体重选择kg作为单位时,身高单位选择cm或者m就有很大的差别。因为结果会倾向于数据分散程度(方差)比较大的部分。当我们选择cm作为单位时,身高的...原创 2019-03-06 15:44:57 · 487 阅读 · 0 评论 -
明可夫斯基距离和马氏距离
明可夫斯基距离和马氏距离原创 2019-02-27 12:50:43 · 3370 阅读 · 0 评论 -
R语言:决策树ID3/C4.5/CART/C5.0算法的实现
在前文中,我们已经详细介绍了决策树算法中的ID3/C4.5/CART算法的原理,以及决策树的剪枝问题。ID3算法戳我C4.5算法戳我CART算法戳我决策树剪枝问题戳我本文将详细介绍如何用R语言实现决策树算法。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“...原创 2019-02-21 01:31:40 · 15629 阅读 · 3 评论 -
L1和L2正则化(岭回归和LASSO)
       在上一篇文章中我们写到了L1损失函数和L2损失函数,本文将讲述L1正则化和L2正则化。损失函数和正则化是作用不同的两个部分,我们将在文中对其进行辨析。L1和L2正则化       假设我们考虑一个回归问题,数据集D原创 2019-03-01 11:15:59 · 4812 阅读 · 1 评论 -
L1和L2损失函数(L1 and L2 loss function)及python实现
       在我们做机器学习的时候,经常要选择损失函数,常见的损失函数有两种:L1-norm loss function和L2-norm loss function。      &原创 2019-02-28 22:11:05 · 36209 阅读 · 2 评论 -
R语言:xgboost算法的实现——xgboost包
xgboost算法可以说是一个比较新兴的算法,效果也非常好,在Kaggle上已经有不少例子说明其算法的优越性甚至超过了随机森林算法。本文将主要介绍xgboost算法的R语言实现。使用的是xgboost包中的xgboost函数。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等...原创 2019-02-24 23:08:32 · 29642 阅读 · 17 评论 -
R语言:逻辑回归算法的实现——glm函数
在前文中,我们已经介绍过了逻辑回归算法的原理以及其python实现,具体请见逻辑回归算法及其python实现。本文将主要介绍逻辑回归算法的R语言实现。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,...原创 2019-02-24 16:46:42 · 76632 阅读 · 8 评论 -
R语言:KNN算法的实现——kknn包
在前文中,我们已经介绍过了KNN算法的原理以及其python实现,具体请见KNN算法及其python实现。本文将主要介绍LNN算法的R语言实现,使用的R包是kknn。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质...原创 2019-02-24 15:59:02 · 28031 阅读 · 1 评论 -
python:librosa的安装
       python中librosa是一个功能非常强大的音频处理库。       其安装可以分为三种方式:使用pip: 这是最最推荐的方式了,使用这种方式可以安装所有的依赖包。pip install librosa使用conda,前提是你使用了Anaconda原创 2019-03-13 15:24:39 · 8835 阅读 · 0 评论 -
python实现排序算法——冒泡排序
使用python实现冒泡排序算法,冒泡排序法是非常经典并且非常简单有效的排序算法。首先我们介绍一下冒泡排序算法。算法步骤:Step 1: 比较第一个数和第二个数,如果第一个数比第二个数大,那么就调换两个数的位置。Step 2: 按照step 1中的做法,依次比较序列中所有相邻的两个数。此时,序列中最大的数已经“沉”到了最后面。Step...原创 2019-05-04 23:05:14 · 1151 阅读 · 0 评论 -
深度学习——激活函数(Sigmoid/ReLU/Softplus/Swish/Maxout)
激活函数的作用 激活函数对于深度学习来说非常的重要,我们假设现在有n个神经元x1,…,xnx_1,\dots,x_nx1,…,xn,其参数为w1,…,wnw_1,\dots,w_nw1,…,wn,偏置为b。z=∑i=1nwixi+bz = \sum_{i=1}^{n}w_ix_i+bz=i=1∑nwixi+ba=f(z)a =...原创 2019-05-04 20:09:38 · 3140 阅读 · 1 评论 -
python实现排序算法——归并排序
使用python实现归并排序。 归并排序采用的是“分而治之”的思想,也就是将一个待排序的数列分成前后两个部分,对这两个部分分别排序后,在将这两个部分合并到一起。 其实,当我们把待排序的序列分成前后两个部分之后,我们可以调用任意的排序方法对...原创 2019-05-17 11:51:40 · 1584 阅读 · 0 评论 -
十大排序算法以及python实现
排序算法可以说是非常重要的基础算法。可能一般少有单独排序的任务,但是大多任务都是基于排序算法的。现在,对于排序算法进行一个总结。 排序算法可以分为两种,第一种是比较类的,第二种是非比较类的。比较类算法包括插入排序,选择排序,快速排序等等方法;非比较类算法包括计数排序,桶排序和计数排序。&n...原创 2019-05-22 11:05:39 · 285 阅读 · 1 评论 -
python实现排序算法——堆排序
堆排序是非常好的排序,其时间复杂度不管什么情况一直都是在O(nlogn)O(nlogn)O(nlogn),空间复杂度还是O(1)O(1)O(1),可以说效果是非常好的。不过,堆排序首先要用到堆的概念,不如快速排序易于理解。而且,虽然其时间复杂度是O(nlogn)O(nlogn)O(nlogn),但是其在实现的过程中,其效率还是不如快速排序。...原创 2019-05-22 09:25:23 · 305 阅读 · 0 评论 -
python实现排序算法——快速排序
python实现快速排序算法。快速排序算法是现在应用最为广泛的算法,它的执行效率高,并且也不会占用太多额外的空间,相比于堆排序它还更加简单易懂。 快速排序方法的思想在于分而治之,首先从待排序序列中选出一个基准,然后将待排序的序列分成两个部分,比这个基准大的在后面,比这个基准小的在前面。然后分...原创 2019-05-19 15:04:20 · 464 阅读 · 0 评论 -
python实现排序算法——希尔排序
使用python实现希尔排序算法。 希尔算法实际上是插入排序的一个改进版。插入排序在对待已经排序差不多的序列的时候,效果几乎线性。但是比如在面对【6,5,4,3,2,1】时,算法就比较慢了,因为每次都只能移动一个位置。【1】需要移动5次才能到它应该取的位置。 &n...原创 2019-05-07 01:08:28 · 385 阅读 · 0 评论 -
python实现排序算法——基数排序
使用python实现基数排序,基数排序也是非比较的排序方法,并且它也是基于桶排序的。 基数排序的原理在于把数字按照不同的位切分,首先排序最后一位,然后排序倒数第二位,一直到排序最高位。因为最高位是最重要的,所以放在最后。 基数排序的缺点在...原创 2019-05-19 01:52:47 · 745 阅读 · 0 评论 -
python实现排序算法——桶排序
python实现桶排序算法。桶排序是之前讲过的计数排序的升级版。之前我们说过计数排序不可以用于小数的排序,其最好的用处就是在一个知道范围并且取值都是整数的环境下使用。今天讲的桶排序,可以解决这个问题。桶排序可以说是利用了函数的映射关系,其效率与这个映射函数有很大关系。 桶排序的工作的原理:将...原创 2019-05-19 00:32:46 · 840 阅读 · 0 评论 -
python实现排序算法——插入排序
使用python实现排序算法中的插入排序。算法步骤:step 1: 对于第i个数,将它与前面的数字进行比较,如果小于前面的数,那就调换它们的位置,如果不小于前面的数,那就不动。依次进行比较,直到它不小于前面的数或者前面没有数。step 2: 从第二个数开始依次执行step 1。算法举例:对于【3,2,1,5,4】排序第一层循环:...原创 2019-05-05 14:12:06 · 588 阅读 · 0 评论 -
python实现排序算法——选择排序
使用python实现选择排序算法。算法步骤:Step 1: 选择目前尚未排序的序列的首位序号,将其依次和后面的数字比较,选出后面序列的最小序号,并将最小序号和之前记录的首位序号调换位置。这样可以将最小的数字排在最前面Step 2: 将step 1循环执行(n−1)(n-1)(n−1)次, 不断的选择当前未排序的序列的最小值,放在当前为排...原创 2019-05-05 10:42:27 · 920 阅读 · 0 评论 -
python:如何生成两类随机点,dataframe的合并以及序号重排
在进行分类和聚类问题时,我们需要使用数据来测试算法的效果,此时采用生成两类不同的二维点(如下图)的方式的最直观的。此时,我们可以很清晰的看到,蓝色的点为一类,红色的点为一类。我们可以使用这样的数据来测试我们算法的效果。本文将阐述如何生成这样的二维点,并加上标签,最后整理成dataframe的格式。(如果时聚类问题,那么就不需要添加标签。)python代码import numpy as n...原创 2019-02-13 14:53:37 · 3192 阅读 · 0 评论 -
R语言:SVM的实现——e1071
SVM是比较常用的分类算法,其核心采用的是线性分类器,如果数据在当前维度下不可分割,可以映射到更高的维度之上。本文将着重介绍SVM算法的R语言实现。使用的是e1071包中的svm函数。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划...原创 2019-02-23 23:58:07 · 39540 阅读 · 9 评论 -
交叉验证法与留出法及其python实现
在机器学习中,我们经常在训练集上训练模型,在测试集上测试模型。最终的目标是希望我们的模型在测试集上有最好的表现。但是,我们往往只有一个包含m个观测的数据集D,我们既要用它进行训练,又要对它进行测试。对于数据集D的划分,我们尽量需要满足三个要求:训练集样本量充足训练模型时的计算量可以忍受不同的划分方式会得出不同的训练集和测试集,从而得出不同的结果,我们需要消除这种影响我们将分别介绍留...原创 2019-01-30 15:16:37 · 12331 阅读 · 2 评论 -
python:np.array的操作
numpy.array的操作在python的数值运算中非常常用,可以用于生成不同的数组。在本文中,我们介绍一些numpy.array的基础操作。文章目录np.arange():生成序列np.linspace():等差数列np.logspace():等比数列生成特殊矩阵astype():改变数据类型.dtype:查看数据类型np.arange():生成序列一般需要两个参数,分别是起点和终点(不...原创 2019-02-16 00:03:54 · 21480 阅读 · 2 评论 -
分类算法 -- 集成学习Adaboost算法(理论介绍)
集成学习(ensemble learning)的思路是“三个臭皮匠顶个诸葛亮”。通过多个“弱学习器”投票产生结果,即形成一个“强学习器”,这样的结果最终往往可能有更强的泛化能力。本文要介绍的Adaboost算法(Adaptive Boosting 自适应增强),就是一个集成学习算法。名字还是比较形象,其自适应在于:前一个基本分类器分错的样本会在当前学习器中得到加强(权重增加),加权后的全体样本被...原创 2019-02-21 16:43:27 · 1417 阅读 · 0 评论 -
TF-IDF原理及其python实现
TF-IDF(Term Frequency-Inverse Document Frequency)算法是常用的一种文本关键词或者文本特征的提取方法。相比于单单考虑单词的出现频率(TF),TF-IDF引入了逆文档频率(IDF),使得我们提取的关键词更加有代表性,而代表性也是TF-IDF方法关注的焦点。其主要思想是:如果在一篇文章中一个词的出现频率高,并且语料库中其他文章包含这个词的概率小,那么这个...原创 2019-02-05 14:03:01 · 12624 阅读 · 9 评论 -
python:shape和reshape()函数
在numpy中,shape和reshape()函数很常用。二者的功能都是对于数组的形状进行操作。shape函数可以了解数组的结构;reshape()函数可以对数组的结构进行改变。值得注意的是,shape和reshape()函数都是对于数组(array)进行操作的,对于list结构是不可以的shapeimport numpy as np#设置一个数组a = np.array([1,2,...原创 2019-02-15 00:11:10 · 39109 阅读 · 4 评论 -
分类算法 -- KNN算法 (理论与python实现)
分类算法 – KNN算法KNN(K-Nearest Neighbor)是一个分类算法,属于有监督学习。KNN思想的核心在于:近朱者赤,近墨者黑,根据新样本的邻居来判定其类别。理论说明算法概论假设我们已知n个样本的特征和标签(即所属分类),并以此作为样本集A。当输入一个没有标签的样本b时,我们可以通过比较新样本b与样本集A中数据对应的特征,然后提取出最为相似的k个数据。最后我们选取k个...原创 2019-01-29 00:13:17 · 1852 阅读 · 3 评论 -
python:2019新年贺词的词云制作以及基于TF-IDF的关键词提取
本文选取的文本是2019年国家发布的新年贺词,我们将以此制作一个词云图,并使用TF-IDF方法提取其关键词。2019新年贺词下载python词云制作本文所使用的python包为jieba/WordCloud/matplotlibimport jiebafrom wordcloud import WordCloudimport matplotlib.pyplot as plt#读取数据...原创 2019-02-01 16:06:16 · 2515 阅读 · 2 评论 -
python:write()/writelines()的区别
在我们使用python写入txt文件时,有write()/writelines()两个方法可以选用。首先,我们贴出结论,即两种方法的区别:接下来,我们通过实例详细解读二者的区别:write()f = open("C:/.../示例.txt", 'w',encoding = 'utf-8')#通过绝对路径打开文件,如果不存在会重新创建一个文件;如果存在会覆盖原文件,encoding表示编码结...原创 2019-01-31 22:57:17 · 12575 阅读 · 1 评论 -
python:read()/readline()/readlines()区别
在我们使用python打开或者读取txt文件时,我们经常会用到read/readline/readlines三种方法,这三种方法的区别我们将举例在本文中详细说明。本文中,我们使用的txt文本如下:...原创 2019-01-31 19:35:54 · 13015 阅读 · 2 评论 -
R语言:Adaboost算法的实现——adabag
在前一篇文章中,我们介绍了Adaboost算法,本文我们将着重介绍其R语言的实现。数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,8}的观测划分在等级1中。数据下载戳我因变量:质量自变量:非挥发性...原创 2019-02-21 23:33:04 · 11908 阅读 · 9 评论 -
自助法及其python实现
在对数据集划分训练集和测试集的时候,我们经常采用的有三种方法,其中留出法和交叉验证法已经在上一篇中有所说明。本文将主要讲述自助法(bootstrapping)及其python实现。在上一篇中,我们说明当数据量很小时,我们可以使用留一法,但是这种方法会造成计算复杂度过高。此时,我们引入自助法来解决问题。1.理论说明自助法: 给定包含m个样本的数据集DDD,我们对它进行采样产生数据集D′D&a...原创 2019-01-30 21:23:41 · 7017 阅读 · 6 评论 -
分类算法 -- 决策树ID3算法
决策树算法是非常常用的分类算法,其分类的思路非常清晰,简单易懂。并且它也是一个很基础的算法,集成学习和随机森林算法是以其为基础的。算法简介对于决策树算法,其输入是带有标签的数据,输出是一颗决策树。其非叶节点代表的是逻辑判断;叶节点代表的是分类的子集。决策树算法原理是通过训练数据形成if-then的判断结构。从树的根节点到叶节点的每一条路径构成一个判断规则。我们需要选择合适的特征作为判断节点,...原创 2019-02-17 01:27:43 · 25856 阅读 · 8 评论 -
相似系数的度量
       在分类和聚类问题中,除了使用距离之外,还可以使用相似系数。显而易见,距离和相似系数应该呈反比,距离越小越相似;距离越大越不同。在上一篇文章中,我们已经对距离进行了详细的说明,    &a原创 2019-02-28 10:05:49 · 976 阅读 · 0 评论 -
分类算法 -- 决策数CART算法
决策树常用的有ID3,C4.5和CART算法,在得到决策树之后还要对树进行剪枝。ID3算法:https://blog.youkuaiyun.com/weixin_43216017/article/details/87474045C4.5算法:https://blog.youkuaiyun.com/weixin_43216017/article/details/87609780决策树的剪枝:https://blog....原创 2019-02-18 15:40:10 · 2888 阅读 · 2 评论 -
R语言:随机森林的实现——randomForest
在前一篇文章中,我们介绍了随机森林,本文我们将着重介绍其R语言的实现。使用randomForest包中的randomForest函数数据简介本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,8}的观测划分在等...原创 2019-02-23 16:44:03 · 91464 阅读 · 25 评论 -
分类算法 -- 决策树C4.5算法
在上一篇介绍ID3算法文章中,我们指出ID3算法采用信息增益作为标准,缺点在于会偏向分类更多的自变量。在本文中,我们将介绍C4.5算法,采用信息增益比代替信息增益,从而减小某一自变量分类个数的影响。我们假设使用的数据集为DDD,待计算的自变量为AAA,g(D,A)g(D,A)g(D,A)则信息增益比为:gr(D,A)=g(D,A)HA(D)g_r(D,A) = \dfrac{g(D,A)}{...原创 2019-02-18 12:53:04 · 4309 阅读 · 3 评论