- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 数据分析实战之数据预处理
1.餐饮销量数的统计量情况 import pandas as pd import matplotlib.pyplot as plt # 餐饮销量数的统计量情况 catering_sale = '../data/chapter3/demo/data/catering_sale.xls' # 餐饮数据 data = pd.read_excel(catering_sale, index_col='...
2019-12-16 20:16:36
1093
原创 深度学习
1.神经网络实现分类 # 设计神经网络结构,按照已定结构训练神经网络实现分类业务 import numpy as np import matplotlib.pyplot as mp # sigmoid函数 def active(x): return 1/(1+np.exp(-x)) # 导函数 def backward(x): return x*(1-x) # 向前...
2019-12-16 16:47:26
344
原创 机器学习6之图像识别
1.OpenCv基础 import numpy as np import cv2 as cv # 读取图片 original = cv.imread('../data/ml_data/forest.jpg') cv.imshow('Original', original) # 显示图片某个颜色通道的图像 blue = np.zeros_like(original) blue[:, :, 0]...
2019-12-13 17:08:29
1837
原创 机器学习5之自然语言处理
1.处理流程 语音识别 自然语言处理 - 语义分析 逻辑分析 - 结合业务场景与上下文 自然语言处理 - 分析结果生成自然语言文本 语音合成 自然语言处理的常用处理过程: 先针对训练文本进行分词处理(词干提取、原型提取),统计词频,通过词频-逆文档频率算法获得该词对样本语义的贡献,根据每个词的贡献力度,构建有监督分类学习模型。把测试样本交给模型处...
2019-12-13 11:23:03
500
原创 机器学习4之聚类
1.k-means算法 第一步:随机选择k个样本作为k个聚类的中心,计算每个样本到各个聚类中心的欧氏距离,将该样本分配到与之距离最近的聚类中心所在的类别中。 第二步:根据第一步所得到的聚类划分,分别计算每个聚类的几何中心,将几何中心作为新的聚类中心,重复第一步,直到计算所得几何中心与聚类中心重合或接近重合为止。 # 加载multiple3.txt,基于K均值算法完成样本的聚类 impor...
2019-12-12 09:51:58
469
原创 机器学习3之分类
1.人工分类 import numpy as np import matplotlib.pyplot as mp x = np.array([ [3, 1], [2, 5], [1, 8], [6, 4], [5, 2], [3, 5], [4, 7], [4, -1]]) y = np.array([0, 1, 1, 0, 0,...
2019-12-11 17:53:52
476
原创 机器学习2之回归
1.线性回归 # 基于线性回归训练single.txt中的训练样本,使用模型预测测试样本。 import numpy as np import sklearn.linear_model as lm import matplotlib.pyplot as mp # 采集数据 x, y = np.loadtxt('../data/ml_data/single.txt', ...
2019-12-10 20:33:29
355
原创 机器学习1之基础
1.典型应用 股价预测、推荐引擎、自然语言识别、语音识别、图像识别、人脸识别 2.机器学习的基本问题 1)回归问题:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到连续的输出。 2)分类问题:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到离散的输出。 3)聚类问题:根据已知输入的相似程度,将其划分为不同的群落。 3.基本步骤...
2019-12-09 17:51:22
219
原创 数据分析8之pandas
1.pandas核心数据结构 """ Series可以理解为一个一维的数组,只是index名称可以自己改动。 类似于定长的有序字典,有Index和 value """ import numpy as np import pandas as pd data = np.array(['a', 'b', 'c', 'd']) s = pd.Series(data) print(s) s = pd...
2019-12-05 17:46:20
311
原创 数据分析7之数学基础2
1.奇异值分解 """ 有一个矩阵M,可以分解为3个矩阵U、S、V,使得U x S x V 等于M。U与V都是正交矩阵(乘以自身的转置矩阵结果为单位矩 阵)。那么S矩阵主对角线上的元素称为矩阵M的奇异值,其它元素均为0。 """ import numpy as np M = np.mat('4 11 14; 8 7 -2') U, sv, V = np.linalg.svd(M, full_...
2019-12-05 08:52:46
267
原创 数据分析6之数学基础
1.符号数组 import matplotlib.pyplot as mp import numpy as np import matplotlib.dates as md import datetime as dt # 若相比上一天的收盘价上涨,则为正成交量;若相比上一天的收盘价下跌,则为负成交量。 # 绘制OBV柱状图 # 日期转换函数 def dmy2ymd(dmy): dm...
2019-12-03 17:51:56
345
原创 数据分析5之线性模型
1,线性预测 import numpy as np import matplotlib.pyplot as plt import datetime as dt import matplotlib.dates as md # 日期转换函数 def dmy2ymd(dmy): dmy = str(dmy, encoding='utf-8') time = dt.datetime...
2019-12-02 17:30:28
462
原创 数据分析4之numpy常用函数
1.加载文件 import numpy as np import matplotlib.pyplot as plt import datetime as dt import matplotlib.dates as md # 日期转换函数 # def dmy2ymd(dmy): # dmy = str(dmy, encoding='utf-8') # time = dt.da...
2019-11-29 17:42:56
356
原创 数据分析3之几种常用图
1.填充两条曲线之间区域 import matplotlib.pyplot as plt import numpy as np n = 1000 x = np.linspace(0, 8*np.pi, n) sin_x = np.sin(x) cos_x = np.cos(x/2)/2 plt.figure('filling graph') plt.xlabel('x') plt.yla...
2019-11-28 16:46:59
2176
原创 数据分析2之数据可视化
1.matplotlib基本使用 import numpy as np import matplotlib.pyplot as plt # y=x**2绘制 x_arr = np.arange(9) y_arr = x_arr**2 plt.plot(x_arr, y_arr) # 绘制水平线 plt.hlines(30, 2, 7, colors='red') # 绘制垂直线 # plt...
2019-11-27 12:03:31
256
原创 数据分析1之numpy
1.常用库 1. numpy 基础数值算法 2. scipy 科学计算 3. matplotlib 数据可视化 4. pandas 序列高级函数 2.numpy基本使用 import numpy as np arr = np.array([1, 2, 3, 4]) print(type(arr)) print(ar...
2019-11-26 17:38:34
300
原创 链表的插入排序
首先介绍一下直接插入排序,对于无序序列2,4 ,3,1,5。首先初始化两个序列,有序序列{2}和无序序列{4,3,1,5},把4放进有序序列,从第一个节点开始比较,找到插入位置,把带插入节点插入相应的位置,得到新的序列{2,4},{3,1,5},依次进行下去,直至无序序列为空。 下面来介绍链表的插入排序 (1)初始化带头节点L有序链表,ListNode *L=new ListNode(-1);...
2018-07-25 10:38:49
749
原创 二叉树前序中序后序的非递归遍历
1前序遍历 按照根左右的顺序进行遍历,首先访问根节点,若左孩子非空,访问左子树;右孩子非空访问右子树。以此规则遍历整个二叉树 (1)当前点入栈,输出该节点 (2)如当前节点左孩子非空,访问该节点的左孩子回到(1) (3)若当前节点左孩子为空,访问该节点右孩子回到(1) stack<TreeNode*>s; vector<int> res; Tr...
2018-07-25 10:16:49
248
原创 链表中环的入口节点
题目描述一个链表中包含环,请找出该链表的环的入口结点。设置两个指针,p2每步走两次,p1每步走一次,若它们相遇,快指针比慢指针多走一圈,假定慢指针所走步数为K。头结点pHead到相遇节点步数为k,一圈的步数也为k,有L(pHead,p1)=L(p2,p1),因此L(pHead,p0)=L(p,p0)(对应的优弧的长度),把p2设置为头结点,同步走,由于p1,p2到环的入口点距离相等,因此p1,p2...
2018-05-18 10:53:05
173
原创 二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。首先,二叉搜索树的特点是根>左孩子,根<右孩子。因此,root.left=左子树最右节点,root.right=右子树最左节点。/* struct TreeNode { int val; struct TreeNode *left; struct TreeNo...
2018-05-18 09:48:11
122
原创 复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)本质上是做一个复杂链表的副本,首先在原链表后面增加一个副本节点,副本节点的val和指针与原链表保持同步,然后把副本链表分离出来就可以了。首先是节点复制,*pnode=1,插入副本...
2018-05-17 15:00:22
158
原创 二叉搜索树的后序遍历
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。首先,二叉搜索树的特点是根节点大于左孩子,小于右孩子。后序遍历的最后一个节点是根节点,因此小于根节点的为左子树,大于根节点发构成右子树。示例:对于后序遍历序列sequece={2,9,5,16,17,15,19,18,12},根节点为sequence[n...
2018-05-17 11:02:24
1112
原创 从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。二叉树的遍历很容易,难点在于二叉树的按层次遍历。这里借助队列来实现按层遍历输出二叉树的节点。每次输出当前节点值,然后把当前节点的左右孩子进入队列,该节点出队。每次输出完当层节点值,值有下一层的节点进入队列,这样就可以实现二叉树的按层输出。/* struct TreeNode { int val; struct TreeNode *l...
2018-05-17 10:32:12
141
原创 栈的压入弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)首先给出入栈序列pushv={1,2,3,4,5}和出栈序列popv={4,5,3,2,1}....
2018-05-17 09:44:59
132
原创 包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。定义两个栈,v1,minv;分别表示压入原始数据的栈和压入当前最小数据的栈。(1)minv为空,直接把原始数据value入栈(2)minv非空,若压入数据value比minv栈顶还要小,value入栈minv;否则minv继续栈顶元素。这样就保证minv是原始数据的最小元素,并且两个栈的元素个数保持一致,其中,最小元素就...
2018-05-17 09:19:50
179
原创 树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)判断B是不是A的子结构就看B的值是否与A中的对应值都相等。(1)若A当前值与B根节点不等,则继续在A的左子树,右子树值查找是否有与B根节点相等的点。(2)若A当前值与B根节点相等,则分别从A,B的左右子树查看两个值是否相等,直到B为空为止,一旦有不相等,返回false。/* struct TreeNo...
2018-05-16 21:05:27
124
原创 反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。首先定义newH=null,*p1=3为头指针。储存下一个节点temp=p1->next;然后3成为新链表的表尾,指向空,有p1->next=newH,此时,表头为newH,newH=p1,然后处理下一个节点,p1=temp;这是一步的结果,最终得到/* struct ListNode { int val; struct Lis...
2018-05-16 20:42:50
135
原创 链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。设置两个指针,第一个先走k步,然后两个指针同步走,当第一个指针到达链表表尾,第二个指针即为链表的倒数第k个节点。/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solutio...
2018-05-16 20:10:04
126
原创 矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 当n>=2时,有如上两种填充方案,可以得到递推公式f(n)=f(n-1)+f(n-2);这是有一个求斐波那契数列的变种,一般的递归求解太复杂,我们考虑从低阶开始计算变种斐波那契数列的第n项。class Solutio...
2018-05-16 19:55:47
129
原创 用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。首先定义两个栈来模拟队列操作,stack1用来实现队列的入队操作,stack2来实现队列的出队操作。首先stack2是空。入队:直接把元素push stack1即可。出队:由于队列是先进先出,因此要把stack1栈底元素提取出来,直接一次pop stack2元素push进stack2,直到stack1为空,...
2018-05-16 19:27:38
148
原创 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。pre={1,2,4,7,3,5,6,8},vin={4,7,2,1,5,3,8,6},首先根节点pHead=new treenode(pre[0]);不断...
2018-05-16 16:31:28
128
原创 从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。首先,我们知道的是链表的表头,要从头到尾打印链表的节点值,而栈是后进先出的,自然而然想到读到链表的节点值时入栈,知道到达链表的表尾,依次出栈,就得到了链表的从尾到头的节点值。/** * struct ListNode { * int val; * struct ListNode *next; * Lis...
2018-05-16 15:02:49
140
原创 替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。若只考虑输出替换后的字符串,则只需定义一个新字符串,当原字符串不为空格,push_back该字符,当原字符串为空格,push_back“%20”即可.class Replacement { public: string replaceSp...
2018-05-16 14:54:44
98
原创 二维数组的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。一般的想法是从最左上端(最小)开始找,但是有两个方向都是增大的,不好判断到底从哪个方向走,但是从斜对角线考虑的话就方便多了,若比当前小,则向左查找;若比当前大,向下查找。对于矩阵:1 2 3 ...
2018-05-16 14:39:21
137
推荐系统j简单介绍.pdf
2019-11-27
算法导论中文版
2018-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅