- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 python栈实现中缀表达式转后缀表达式并计算
中缀转后缀实现的主要思路是:新建一个空list。给各运算符指定优先级。当输入为运算量是数字或左括号 ‘(’ 时入栈。当输入运算符的优先级小于栈内运算符的优先级时,执行出栈操作,直到栈为空或栈内的运算符优先级小于输入运算符的优先级。当输入为右括号 ‘)’ 时,执行出栈操作,直到遇到左括号 ‘(’ 才停止操作。通过后缀表达式计算式子时,遍历整个式子,如果遍历到数字则入栈,如果为运算符则...
2019-10-30 23:25:45 1289
原创 朴素贝叶斯训练并生成MNIST样本python实现
朴素贝叶斯生成新的样本数据,主要是通过训练时计算的先验概率p(y)和似然p(x|y)生成。首先会通过先验概率大小随机生成第c类,然后通过c类的似然概率大小,生成每一维的数据,最后就得到了新的样本。数据集加载方法load_mnist可以自行修改,这里用到了mnist-original.mat文件需要下载后放入当前路径的datasets/mldata下。from sklearn.datasets i...
2019-10-28 10:39:00 667
原创 朴素贝叶斯MNIST手写识别分类python实现
朴素贝叶斯训练数据时,就是求其似然和先验概率。预测时,求最大后验概率。代码中的mnist-original.mat文件需要自行下载,并放入当前路径的datasets\mldata文件夹下。from sklearn.datasets import fetch_mldatafrom collections import Counterimport numpy as np#加载MNIST数据集...
2019-10-27 20:57:04 1596 1
原创 python链表正反创建、插入和删除节点实现
class LinkedList: value = None next = Nonedef createLinkedList(op=0): #op=0从链表尾部依次插入,与输入顺序一致构造链表 if op==0: headNode = LinkedList() p = headNode input...
2019-10-27 16:50:49 248
原创 随机森林回归python实现
随机回归森林是由多个完全独立的回归决策树voting完成的,单个决策树的训练采用的是bagging,是集成学习中比较经典,效果较好的方法,可以作为baseline.from sklearn.datasets import load_irisimport numpy as npclass DecisionTree: def __init__(self): pass...
2019-10-25 18:39:35 3756
原创 回归决策树python实现
决策树不仅可以解决分类问题,还可以解决回归问题。在分类问题中,决策树选择特征主要是使用信息增益(交叉熵减少的大小)来衡量特征是否最优,是一种贪心算法。在回归问题中,信息增益的计算采用方差减少的大小来选择特征,方差减少地越大,说明划分该特征后数据更加稳定。交叉熵和方差都是用来衡量数据稳定程度的值。由于回归问题中需要处理连续的特征,所以需要对每个特征设置划分阈值,根据划分后的样本标签计算方差,然后加...
2019-10-25 14:53:29 1474
原创 python堆排序实现
import mathimport copy#二叉树节点类class TreeNode: value = None #节点值 depth = None #节点深度 num = None #节点序号 def __init__(self, value): self.value = value#二叉树建立,存储结构为顺序表def create...
2019-10-20 12:13:29 88
原创 python二叉树的建立和遍历
数的存储结构使用的是数组存储,如果是想建立完全二叉树的话只需按顺序输入格节点数值,输入’#‘结束。如果建立非完全二叉树,可以在叶子节点的值中输入’null’来表示值为空,输入’#'结束。遍历就直接对数组进行层次遍历,格局节点序号(索引值)计算节点的深度,公式是 depth=log2ndepth=log_{2}ndepth=log2n。import math#建立树节点结构class Tr...
2019-10-19 17:03:10 366
原创 快速排序python实现
快速排序和归并排序有点相似,归并排序是先“切分”后排序,而快速排序是先排序后切分。快速排序中,一个待排序的数组右两个指针分别指向收尾,并且指定一个基准数,基准数一般是待排序数组的头元素,通过比较指针所指元素和基准数的值,不断进行交换,当两个指针指向同一元素时,基准数归位。基准数左侧数都小于基准数,右侧都大于基准数。这样就进行了一遍快速排序。然后继续对基准数左侧所有元素和右侧所有元素分别进行递归操作...
2019-10-17 17:09:19 112
原创 归并排序python实现
归并排序,使用python实现归并排序的核心思想就是将数组平均分为两个数组,假设有N个元素,则分为N个数组,每个数组只有一个元素。分组之后进行合并操作,同时合并两个数组,这两个数组可分为“左数组”和“右数组”,分别对应两个指针“左数组指针”和“右数组指针”,这两个指针对应的元素进行比较,比较大小后移动左侧指针或右侧指针,直到左指针或右指针指向数组末端,然后再将剩下的未归并的数组直接放在归并数组的...
2019-10-17 15:48:48 232
原创 逻辑回归目标函数之凸函数
逻辑回归目标函数逻辑回归的目标函数是通过极大似然估计构造,用已经观测到的数据X对未知参数θ\thetaθ进行估计,参数是假设已存在但是未知的。所以通过计算θ∗=argmaxθ Πinp(y∣Xi,θ)\theta^* = \mathop{\arg\max}_{\theta} \ \Pi_{i}^{n} p(y|X_{i},\theta) θ∗=argmaxθ Π...
2019-10-14 20:45:51 1228
原创 京东笔试编程题之消消乐
题目:有一个5*5的正方形网格,没个格子中有一个大于0且小于4的整数,对于一个确定的局面,若一个格子与它上下左右四个方向的某个格子(如果存在)数字相同,则称这两个格子是连通的,并且这种连通具有传递性。每次,可以选择一个格子,若与这个格子连通的格子(包括自己)数大于等于3,你就可以选择消掉这个格子,与此同时,与这个格子连通的所有格子会一起消失。如果仅仅是这样,那就太简单了,因为无论如何消除,最后...
2019-09-18 19:39:06 1201
原创 在m个节点的分布式计算系统中,有一批任务需要执行,每个任务需要的时间是array[i],每个节点同一时间只能执行一个任务,每个节点只能执行连续的任务
在m个节点的分布式计算系统中,有一批任务需要执行,每个任务需要的时间是array[i],每个节点同一时间只能执行一个任务,每个节点只能执行连续的任务,例如 i, i+1, i+2但是不能执行 i, i+2。请问任务完成的最短时间?import java.util.Scanner;public class ArrageCom { static int [] stack; static ...
2019-09-06 22:43:32 1010
原创 斐波那契数列递归实现
def Fibonacci(n):if n0:return 0if n1:return 1a = Fibonacci(n-1)b = Fibonacci(n-2)return a + bfor i in range(1,8):print(Fibonacci(i))
2019-09-02 21:57:33 208
空空如也
关于链表节点,作为函数形参,*node和*&node的区别
2017-10-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人