- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 数据分析实战之数据预处理
1.餐饮销量数的统计量情况import pandas as pdimport 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 973
原创 深度学习
1.神经网络实现分类# 设计神经网络结构,按照已定结构训练神经网络实现分类业务import numpy as npimport 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 253
原创 机器学习6之图像识别
1.OpenCv基础import numpy as npimport 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 1317
原创 机器学习5之自然语言处理
1.处理流程 语音识别 自然语言处理 - 语义分析 逻辑分析 - 结合业务场景与上下文 自然语言处理 - 分析结果生成自然语言文本 语音合成 自然语言处理的常用处理过程:先针对训练文本进行分词处理(词干提取、原型提取),统计词频,通过词频-逆文档频率算法获得该词对样本语义的贡献,根据每个词的贡献力度,构建有监督分类学习模型。把测试样本交给模型处...
2019-12-13 11:23:03 411
原创 机器学习4之聚类
1.k-means算法第一步:随机选择k个样本作为k个聚类的中心,计算每个样本到各个聚类中心的欧氏距离,将该样本分配到与之距离最近的聚类中心所在的类别中。第二步:根据第一步所得到的聚类划分,分别计算每个聚类的几何中心,将几何中心作为新的聚类中心,重复第一步,直到计算所得几何中心与聚类中心重合或接近重合为止。# 加载multiple3.txt,基于K均值算法完成样本的聚类impor...
2019-12-12 09:51:58 366
原创 机器学习3之分类
1.人工分类import numpy as npimport matplotlib.pyplot as mpx = 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 376
原创 机器学习2之回归
1.线性回归# 基于线性回归训练single.txt中的训练样本,使用模型预测测试样本。import numpy as npimport sklearn.linear_model as lmimport matplotlib.pyplot as mp# 采集数据x, y = np.loadtxt('../data/ml_data/single.txt', ...
2019-12-10 20:33:29 267
原创 机器学习1之基础
1.典型应用 股价预测、推荐引擎、自然语言识别、语音识别、图像识别、人脸识别2.机器学习的基本问题1)回归问题:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到连续的输出。2)分类问题:根据已知的输入和输出寻找某种性能最佳的模型,将未知输出的输入代入模型,得到离散的输出。3)聚类问题:根据已知输入的相似程度,将其划分为不同的群落。3.基本步骤...
2019-12-09 17:51:22 149
原创 数据分析8之pandas
1.pandas核心数据结构"""Series可以理解为一个一维的数组,只是index名称可以自己改动。类似于定长的有序字典,有Index和 value"""import numpy as npimport pandas as pddata = np.array(['a', 'b', 'c', 'd'])s = pd.Series(data)print(s)s = pd...
2019-12-05 17:46:20 229
原创 数据分析7之数学基础2
1.奇异值分解"""有一个矩阵M,可以分解为3个矩阵U、S、V,使得U x S x V等于M。U与V都是正交矩阵(乘以自身的转置矩阵结果为单位矩阵)。那么S矩阵主对角线上的元素称为矩阵M的奇异值,其它元素均为0。"""import numpy as npM = np.mat('4 11 14; 8 7 -2')U, sv, V = np.linalg.svd(M, full_...
2019-12-05 08:52:46 193
原创 数据分析6之数学基础
1.符号数组import matplotlib.pyplot as mpimport numpy as npimport matplotlib.dates as mdimport datetime as dt# 若相比上一天的收盘价上涨,则为正成交量;若相比上一天的收盘价下跌,则为负成交量。# 绘制OBV柱状图# 日期转换函数def dmy2ymd(dmy): dm...
2019-12-03 17:51:56 270
原创 数据分析5之线性模型
1,线性预测import numpy as npimport matplotlib.pyplot as pltimport datetime as dtimport matplotlib.dates as md# 日期转换函数def dmy2ymd(dmy): dmy = str(dmy, encoding='utf-8') time = dt.datetime...
2019-12-02 17:30:28 390
原创 数据分析4之numpy常用函数
1.加载文件import numpy as npimport matplotlib.pyplot as pltimport datetime as dtimport matplotlib.dates as md# 日期转换函数# def dmy2ymd(dmy):# dmy = str(dmy, encoding='utf-8')# time = dt.da...
2019-11-29 17:42:56 291
原创 数据分析3之几种常用图
1.填充两条曲线之间区域import matplotlib.pyplot as pltimport numpy as npn = 1000x = np.linspace(0, 8*np.pi, n)sin_x = np.sin(x)cos_x = np.cos(x/2)/2plt.figure('filling graph')plt.xlabel('x')plt.yla...
2019-11-28 16:46:59 2037
原创 数据分析2之数据可视化
1.matplotlib基本使用import numpy as npimport matplotlib.pyplot as plt# y=x**2绘制x_arr = np.arange(9)y_arr = x_arr**2plt.plot(x_arr, y_arr)# 绘制水平线plt.hlines(30, 2, 7, colors='red')# 绘制垂直线# plt...
2019-11-27 12:03:31 193
原创 数据分析1之numpy
1.常用库1. numpy 基础数值算法2. scipy 科学计算3. matplotlib 数据可视化4. pandas 序列高级函数2.numpy基本使用import numpy as nparr = np.array([1, 2, 3, 4])print(type(arr))print(ar...
2019-11-26 17:38:34 218
原创 链表的插入排序
首先介绍一下直接插入排序,对于无序序列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 662
原创 二叉树前序中序后序的非递归遍历
1前序遍历按照根左右的顺序进行遍历,首先访问根节点,若左孩子非空,访问左子树;右孩子非空访问右子树。以此规则遍历整个二叉树(1)当前点入栈,输出该节点(2)如当前节点左孩子非空,访问该节点的左孩子回到(1)(3)若当前节点左孩子为空,访问该节点右孩子回到(1) stack<TreeNode*>s; vector<int> res; Tr...
2018-07-25 10:16:49 184
原创 链表中环的入口节点
题目描述一个链表中包含环,请找出该链表的环的入口结点。设置两个指针,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 121
原创 二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。首先,二叉搜索树的特点是根>左孩子,根<右孩子。因此,root.left=左子树最右节点,root.right=右子树最左节点。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNo...
2018-05-18 09:48:11 81
原创 复杂链表的复制
题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)本质上是做一个复杂链表的副本,首先在原链表后面增加一个副本节点,副本节点的val和指针与原链表保持同步,然后把副本链表分离出来就可以了。首先是节点复制,*pnode=1,插入副本...
2018-05-17 15:00:22 104
原创 二叉搜索树的后序遍历
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。首先,二叉搜索树的特点是根节点大于左孩子,小于右孩子。后序遍历的最后一个节点是根节点,因此小于根节点的为左子树,大于根节点发构成右子树。示例:对于后序遍历序列sequece={2,9,5,16,17,15,19,18,12},根节点为sequence[n...
2018-05-17 11:02:24 964
原创 从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。二叉树的遍历很容易,难点在于二叉树的按层次遍历。这里借助队列来实现按层遍历输出二叉树的节点。每次输出当前节点值,然后把当前节点的左右孩子进入队列,该节点出队。每次输出完当层节点值,值有下一层的节点进入队列,这样就可以实现二叉树的按层输出。/*struct TreeNode { int val; struct TreeNode *l...
2018-05-17 10:32:12 88
原创 栈的压入弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列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 78
原创 包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。定义两个栈,v1,minv;分别表示压入原始数据的栈和压入当前最小数据的栈。(1)minv为空,直接把原始数据value入栈(2)minv非空,若压入数据value比minv栈顶还要小,value入栈minv;否则minv继续栈顶元素。这样就保证minv是原始数据的最小元素,并且两个栈的元素个数保持一致,其中,最小元素就...
2018-05-17 09:19:50 117
原创 树的子结构
题目描述输入两棵二叉树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 82
原创 反转链表
题目描述输入一个链表,反转链表后,输出链表的所有元素。首先定义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 90
原创 链表中倒数第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 75
原创 矩形覆盖
题目描述我们可以用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 75
原创 用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。首先定义两个栈来模拟队列操作,stack1用来实现队列的入队操作,stack2来实现队列的出队操作。首先stack2是空。入队:直接把元素push stack1即可。出队:由于队列是先进先出,因此要把stack1栈底元素提取出来,直接一次pop stack2元素push进stack2,直到stack1为空,...
2018-05-16 19:27:38 87
原创 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{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 78
原创 从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。首先,我们知道的是链表的表头,要从头到尾打印链表的节点值,而栈是后进先出的,自然而然想到读到链表的节点值时入栈,知道到达链表的表尾,依次出栈,就得到了链表的从尾到头的节点值。/*** struct ListNode {* int val;* struct ListNode *next;* Lis...
2018-05-16 15:02:49 83
原创 替换空格
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。若只考虑输出替换后的字符串,则只需定义一个新字符串,当原字符串不为空格,push_back该字符,当原字符串为空格,push_back“%20”即可.class Replacement {public: string replaceSp...
2018-05-16 14:54:44 59
原创 二维数组的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。一般的想法是从最左上端(最小)开始找,但是有两个方向都是增大的,不好判断到底从哪个方向走,但是从斜对角线考虑的话就方便多了,若比当前小,则向左查找;若比当前大,向下查找。对于矩阵:1 2 3 ...
2018-05-16 14:39:21 78
推荐系统j简单介绍.pdf
2019-11-27
算法导论中文版
2018-10-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人