- 博客(41)
- 收藏
- 关注
原创 数据结构部分内容总结
1.快速排序:O(N*log2N)(1)随机选择一个基准数,比如选择第一个数。(2)从左边开始遍历,找比基准数大的数;从右边开始遍历,找比基准数小的数。(3)找到后交换这两个数,然后继续遍历。(4)如果左右两边走到一起,即遍历到了同一个数,将这个数与基准数交换。(5)此时基准数落位正确,对于基准数左边和右边的数,重新开始上述过程。2.冒泡排序:O(N2)(1)比较相邻的元素。如果第...
2019-07-16 21:54:25
247
原创 集成学习——从决策树到XGBoost(1)决策树算法
现在最火的两种模型,就是基于树的模型和深度学习神经网络模型了,并且,这两种个模型在很多地方,都有异曲同工的相似之处。XGB和LGB以及由其组成的stacking方法,是kaggle数据挖掘比赛中的大杀器,金牌选手的必选模型。这里,我开一个小系列,和大家一起学习一下,基于树的模型,一起感受机器学习的奇妙之处。1.决策树首先,我们需要介绍一下决策树。决策树的结构如下图所示图来自:http...
2019-07-13 21:54:15
556
原创 算法编程题总结(2)动态规划
动态规划的一般思路是:将大问题分解为小问题,即,将一个问题考虑成一步一步解决的子问题。https://blog.csdn.net/m0_37789876/article/details/82853572这篇博客对动态规划问题的讲解不错。1.leetcode(53)最大子序列的和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输...
2019-06-28 15:14:50
308
原创 Tensorflow函数tf.losses.log_loss()
tf.losses.log_loss( labels,#真实的输出张量,与“predictions”相同. predictions,#预测的输出. weights=1.0,#可选的Tensor,其秩为0或与labels具有相同的秩,并且必须可广播到labels(即,所有维度必须为1,或者与相应的losses维度相同). epsilon=1e-07,#要添加的小增量,...
2019-06-27 10:32:35
10204
原创 leetcode(8)字符串转换整数——python
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽...
2019-06-26 23:40:54
537
原创 算法编程题总结(1)递归问题
今天看到了一位大佬的博客:http://39.96.217.32/blog/4博客中总结出了解决递归题目所用的套路:1.确定终止条件2.确定递归返回值3.确定确定本次递归所需要完成的任务博客讲解的很到位,递归问题对于入门者来说,是一个很让人头痛的问题,一层一层的循环让我们不知道这个函数的输入和输出到底是什么,导致无从下手。本篇博客针对leetcode和剑指offer中的递归问题,利用大...
2019-06-26 23:15:42
328
原创 leetcode(6)Z字形变换——python
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S H GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCI...
2019-06-26 23:00:27
127
原创 剑指offer(16)二叉树的深度——python
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。递归方法二叉树的深度等于其左右子树深度中更大的那个+1这样就可以不断的求二叉树的左右子树的深度,一直到叶节点构成递归条件# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):...
2019-06-23 16:53:17
117
原创 剑指offer(15)数字在排序数组中出现的次数——python
题目描述统计一个数字在排序数组中出现的次数。例如:统计数组{1,2,3,3,3,3,4,5}中数字3出现的次数思路:利用二分查找法,二分查找法总是先拿数组中间的数和k作比较。如果中间的数字比k大,那么k只有可能出现在数组的前半段,下一轮只在数组的前半段查找即可。如果中间的数字比k小,那么k只有可能出现在数组的后半段,下一轮我们只在数组的后半段查找即可。如果中间数字和k相等,则看其前面一位的...
2019-06-23 16:28:33
357
原创 剑指offer(14)两个链表的公共节点——python
题目描述输入两个链表,找出它们的第一个公共结点。首先弄明白,两个链表的公共节点是什么。是pHead1和pHead2在某个节点都指向了同一个节点。方法1.#用栈的方法(剑指offer书上的方法)#构建两个栈,相当于将链表的顺序反过来,这样,两个链表最后一个不相同的节点,就是第一个公共节点。class Solution: def FindFirstCommonNode(self, ...
2019-06-23 15:20:41
391
原创 剑指offer(13)只出现一次的字符——python
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).方法1.利用python内置函数的暴力写法def FirstNotRepeatingChar(s): if len(s)<0: return -1 for i in s: if s.count(i) == ...
2019-06-22 23:25:18
111
原创 剑指offer(12)丑数——python
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。# -*- coding:utf-8 -*-#剑指offer上的解法,这是借鉴的,我自己写的时候,一直有一个错误,#就是我添加的丑数会有重复的情况,比如2*3和3*2都是6,这个6在我的列表中就出现了两...
2019-06-21 22:23:40
96
原创 剑指offer(11)把数组排成最小的数——python
题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。# -*- coding:utf-8 -*-class Solution: def compare(self,num1,num2): t = str(num1)+str(num2) ...
2019-06-21 21:47:42
833
原创 剑指offer(10)连续子数组的最大和——python
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...
2019-06-21 11:49:11
127
原创 剑指offer(9)整数中1出现的次数——python
方法1:EG:对于824883294,先求0-800000000之间(不包括800000000)的,再求0-24883294之间的。如果等于1,如1244444,先求0-1000000之间,再求1000000-1244444,那么只需要加上244444+1,再求0-244444之间的1如果大于1,例:0-800000000之间1的个数为8个100000000的1的个数加上100000000,...
2019-06-21 11:42:36
227
原创 JAVA基础知识
**构造方法:**在实例化对象的同时就为这个对象的属性进行赋值。构造方法是类的一个特殊成员,它会在类实例化对象时就被自动调用。方法名与类名同,方法名前无返回值类型,不能返回值,但是可以只写return作为结束。**构造方法的重载:**只要参数类型或参数数量不同即可。**this关键字:**访问类的成员变量(self),调用成员方法,只写this()调用构造方法。**垃圾回收:**System...
2019-06-20 23:30:38
78
原创 python知识点(5)map函数
EG.#统计0-n之间出现1的次数''.join(map(str, range(n+1))).count('1')map函数的第一个参数,可以理解为是一个函数,第二个参数是一个迭代器,使迭代器中的元素按顺序执行第一个参数中的函数。EG2.def square(x) : # 计算平方数 return x ** 2map(square, [1,2,3,4...
2019-06-20 23:23:47
992
原创 强化学习实例——防守分配
这次,我们利用最基础的Q学习实现一个多智能体的分配任务。利用单智能体的算法解决多智能体问题,是多智能体强化学习中的一种集中式处理的思路,需要注意的是,所有智能体要保证是信息共享的。我们这次的例子,是传感器调度的一个例子。为了方便理解,这里我换一下表述,假想你是一个篮球教练,现在你要布置战术,让每名防守球员迅速的找到对应的对方球员进行防守,要求一名防守球员对应一名对方进攻球员,并且,为了节省体...
2019-06-01 22:16:11
1849
原创 二分法查找——python
递归def binarySearch(arr,low,high): if low>high: return mid = int((low+high)/2) if key == arr[mid]: return mid elif key<arr[mid]: high = mid-1 return binarySearch(arr,low,high) els...
2019-05-17 20:54:58
144
原创 剑指offer(8)数组中出现超过一半次数的数字--python
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。采用阵地攻守的思想:第一个数字作为第一个士兵,守阵地;count = 1;遇到相同元素,count++;遇到不相同元素,即为敌人,同归于尽,count–;当遇到count为...
2019-05-16 17:11:45
61
原创 选择排序,插入排序,快速排序——python
#选择排序#每次得到一个位置上的正确数字#最佳情况:T(n) = O(n2) 最差情况:T(n) = O(n2) 平均情况:T(n) = O(n2)def selectionSort(list): if not list: return None length = len(list) for i in range(length): ...
2019-05-16 16:28:17
106
转载 python知识点(4)迭代器与生成器
转自菜鸟教程迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器:>>>list=[1,2,3,4]>>> ...
2019-05-15 22:24:30
120
原创 剑指offer(7)二叉搜索树与双向链表--python
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。非递归方法思路:首先,二叉树搜索树的中序遍历是一个排序的遍历方法,并且,二叉树的中序遍历方法必须知道,不论是递归方法还是非递归的方法,都要很熟。1.实现二叉搜索树的中序排列2.将中序排列列表中的各个节点前后连接起来# -*- coding:utf-8 -*-# c...
2019-05-15 20:34:13
89
转载 python知识点(3)lambda
转自菜鸟教程python 使用 lambda 来创建匿名函数。lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数...
2019-05-15 17:31:02
268
原创 剑指offer(6)二叉树和为某一值的路径--python
题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)。思想:写一个内部函数,找到所有从根节点到子节点的路径,然后将这些路径中和输入值相匹配的路径保存到列表中。注意,在每一次得到路径后要对最后一个值进行pop,因为要回退一个值继续遍历另一...
2019-05-15 17:05:30
110
转载 python知识点(2)map函数
转自菜鸟教程map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。map() 函数语法:map(function, iterable, …)参数function – 函数iterable – 一个或多个序列返回值Python 2.x 返回列表。Pyth...
2019-05-15 16:08:06
136
翻译 多智能体强化学习经典综述A Comprehensive Survey of Multi-Agent Reinforcement Learning翻译
因为里面的图片实在是多,就用贴图代替了~
2019-05-14 22:29:53
3727
转载 python知识点(1)深拷贝与浅拷贝
转自菜鸟教程直接赋值:其实就是对象的引用(别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。>>>a = {1: [1,2,3]}>>> b = a.copy()>>> a, b({1: [1, 2, 3]}, {...
2019-05-13 23:08:51
95
原创 机器学习分类—stacking方法
1.一个简单的单层stackingimport seaborn as snsimport matplotlib.pyplot as pltfrom imblearn.over_sampling import SMOTE, ADASYNfrom sklearn.model_selection import cross_val_scorefrom sklearn.model_selectio...
2019-05-12 20:46:15
1632
原创 机器学习分类—SMOTE算法
先粘下来代码,原理之后再补充,训练数据的背景还是之前二分类博客里的那个第五题# -*- coding: utf-8 -*-import numpy as npimport pandas as pdfrom sklearn.preprocessing import StandardScalerfrom numpy import *import matplotlib.pyplot as p...
2019-05-12 20:43:30
2163
原创 机器学习分类—svm+bagging(sklearn)
数据描述:招商银行的Fintech比赛2019年第五题,数据有34个数值型特征,7000多个样本,其中只有100多个正例,这个做的很基础,写下来就是自己备忘一下。1.特征工程我认为的特征工程主要的步骤是,特征观察,特征分析,特征提取,特征处理和特征选择。接下来用代码叙述:首先,要将训练数据和测试数据合并处理,当然,要先把标签提取出来import numpy as npimport p...
2019-05-12 20:41:03
5033
原创 剑指offer(6)包含min函数的栈--python
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。众所周知,栈是一个先入后出的数据结构,相当于向试管里塞棉球,然后再一个一个掏出来,python中有一个实用的函数pop,基于这个函数,可以直接构建栈这种数据结构。实现一个栈,应该实现三种操作,即:入栈push,出栈pop和输出栈顶元素top。同时,本题要求,在实现栈的同时,能够输出栈...
2019-05-12 19:52:02
70
原创 剑指offer(5)数的子结构--python
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)。读题,首先,这是一道二叉树的题,那基本上就和递归、指针有关了,虽然python里并没有指针的概念,但是在做编程题的时候,要领会指针的思想。先回顾一下二叉树的定义:# class TreeNode:# def __init__(self, x):# self.val...
2019-05-12 17:26:54
157
原创 剑指offer(4)顺时针打印矩阵--python
原题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.以1 2 3 45 6 7 81 2 3 45 6 7 8举例。思想是,定义一个循环,在矩阵不为空时,一...
2019-05-12 17:13:05
87
原创 剑指offer(3)青蛙跳台阶--python
青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求青蛙跳上n级台阶共有多少种跳法?思路:先看看青蛙第一次跳,有两种方式:1.跳一级,这时还剩n-1级、2.跳两级,这时还剩n-2级;这样,问题就转换成了f(n)=f(n-1)+f(n-2)由上述思路写下程序:# -*- coding:utf-8 -*-class Solution: def jumpFloor(self, number...
2019-05-06 12:43:25
181
原创 剑指offer(2)斐波那契数列--python
自顶向下分析,自底向上解决1.简单但耗费巨大的递归写法class Solution: def Fibonacci(self, n): # write code here if n == 0: return 0 elif n == 1: return 1 else: ...
2019-05-06 12:20:28
246
原创 剑指offer(1)旋转数组的最小数字--python
1.比较方法class Solution: def minNumberInRotateArray(self, rotateArray): length = len(rotateArray) if length == 0: return 0 elif length == 1: return ro...
2019-05-06 12:06:01
83
原创 知识图谱总结(二)实践篇
(一):数据准备和本体建模1.配置环境(本机为Windows10)(1)MYSQL数据库(2)Nacivat数据库可视化工具(3)从GITHUB上下载相关数据 https://github.com/SimmerChan/KG-demo-for-movie其中包含电影数据的sql文件等文件(4)protege软件2.内容数据是与电影相关的,基本统计数据如下:演员数量:505人,电影数...
2019-04-17 22:14:13
1022
原创 知识图谱总结(一)概念篇
参考知乎教程:知识图谱–给AI装个大脑本文的一切环境配置都是在Windows10平台机器学习是学习能力强的小孩。知识图谱是经验丰富的老人。一、知识图谱概念1.语义网络(Semantic Network)与语义网不是同一概念,需要注意。语义网络由相互连接的节点和边组成,节点表示概念或者对象,边表示他们之间的关系。在表现形式上,语义网络和知识图谱相似,但语义网络更侧重于描述概念与概念...
2019-04-17 22:11:22
2238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人