自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 四月总结归纳 Deeplearning and Pytoch

AlexNet、VGG、Googlenet、Resnet的区别AlexNet创新:提出了Maxppooling、Relu、Dropout基础架构:kernel_size = 11x11 7个隐藏层 5个Cov+3个FCReLuReLU相比Sigmoid的优势是其训练速度更快,因为Sigmoid的导数在稳定区会非常小,从而权重基本上不再更新。这就是梯度消失问题。因此AlexNet在卷积层和全连接层后面都使用了ReLU。Relu:f(x) = max(x,0)DropoutDropout和集成

2022-04-27 22:42:51 260

原创 sklearn Kmeans

KmeansKmeans属于无监督学习 对输入样本不断地迭代 计算出最佳质心步骤1、随机选定k个样本作为质心2、开始循环2.1、将各个样本点分配到离它们最近的质心,生成k个簇2.2、对于每个簇,计算所有被分到该处的样本点的平均值作为新的质心3、当质心位置不再变化时,迭代停止,完成聚类。簇内误差的定义i 表示每个样本的第i个特征x表示样本 μ表示质心欧几里得距离d = 根号∑(xi-μi)^2曼哈顿距离d = ∑|xi-μi|欧几里得距离是类似于勾股定理 求两点之间的最短距离(直

2022-03-29 16:54:07 2707

原创 sklearn Logistic

Logistic 知识点库linear_model.LogisticRegression函数Sigmoid函数g(z) = 1/(1+e^-z)z = θ^(T) xg(z) 就是Logistic的一个标签值(概率)几率概念(二分类模型)p/(1-p)在Logistic中 对数几率log(p/1-p) = θ^(T) x优点拟合效果好逻辑回归计算快损失函数衡量θ优劣的评估指标(没有‘求解参数’就没有损失函数 如KNN、决策树无损失函数)损失函数由极大似然估计求出(记得加负号)

2022-03-27 12:51:50 2353

原创 leetcode 82. 删除排序链表中的重复元素 II 链表 双指针

新学的点在链表中cur == pre 指的是两种指的点相同 (储存id相同)思路以及代码思路step1:设置dummy节点 以及双指针 pre curpre -> dummycur -> headstep2:设置循环条件循环一:当cur存在进入循环循环二:当cur.next存在 cur.next.val == cur.val:cur = cur.next #在有重复元素出现时不断遍历 直至重复元素的最后一个位置if pre.next == cur : pre = pr

2022-03-21 13:10:35 194

原创 sklearn chapter4

维度对于数组来说维度就是括号的数量 或者 .shape后含有数字的个数对于图像来说 维度就是图像中特征向量的数量特征向量可以理解成坐标轴降维算法sklearn中的降维算法一个特征的方差越大,表示所涵盖的信息越多Var = 1(n-1)∑(xi-xhat)^2n-1是无偏估计PCA重要参数n_components降维后需要保留的特征数量 特征百分比范围在 [0,min(X.shape)]属性.explained_variance_查看降维后每个新特征特征向量上所带的信息大小(

2022-03-18 17:53:50 1265

原创 sklearn chapter3 x1

数据预处理以及特征工程使用的库from sklearn.preprocessing import LabelEncoder,OrdinalEncoder,OneHotEncoder,Binarizerfrom sklearn.impute import SimpleImputerfrom sklearn.feature_selection import VarianceThresholdfrom sklearn.model_selection import cross_val_scorefrom

2022-03-17 00:52:39 1192

原创 sklearn chapter2

随机森林是一个集成算法,以决策树为基分类器或者回归模型,采用n棵决策树进行训练集成。参数n_estimator最重要的参数,基分类器的数量。criterion 不纯度的衡量指标 分别为基尼指数和信息熵 gini 和 entropymax_depth 树的最大深度 超过最大深度会被剪枝min_samples_leaf一个节点在分支后至少包含min_samples_leaf个训练样本,否则不会分支,也就是分支后的节点要有min_samples_leaf个节点才会存在 默认值为1min_sample

2022-03-17 00:38:37 1427

原创 leetcode bfs 1162

BFS常规思路while queue 不空:cur = queue.pop()for 节点 in cur的所有相邻节点(上下左右):if 该节点满足边界条件且未访问过:queue.push(该节点)计数方法通过层次遍历 遍历层次+1 计数+1Leetcode 1162题目要求:你现在手里有一份大小为 n x n 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地。请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的,

2022-03-15 00:50:05 87

原创 sklearn chapter 1 Decisiontree

决策分类树的重要剪枝参数设置criterion决策树叶子节点信息熵的计算标准:1.‘gini’ 2.‘entropy’ 默认ginirandom_state随机数种子 设置之后随机性确定(不具有随机性)max_depth(剪枝的重要参数)限制树的最大深度实际使用时,建议从=3开始尝试,看看拟合的效果再决定是否增加设定深度。min_sample_leaf叶子节点的最小样本数当叶子节点的样本数少于该参数设置时,叶子节点直接裁剪一般来说,建议从=5开始使用。如果叶节点中含有的样本量变化很

2022-03-12 13:13:49 2079

原创 leetcode 滑动窗口 3 567

滑动窗口points:1.设置一个窗口,不断地滑动,满足条件时,窗口扩大,不满足条件时,窗口重置。2.不满足条件时,窗口的重置,有两种情况,一种是重置至变化前,一种是删除头部元素,两个条件要判断好。leetcode 3给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。这题思路很简单point:1.设置窗口:res = ‘’ 和指针cur满足的条件为

2022-03-11 13:50:15 174

原创 机器学习进阶 day4

AUC以及ROC曲线TPR和FPR的概念TPR真正率分类正确的数量占总的正确的数量FPR假正率分类错误的数量占总的错误的数量图例解释equal error rate该点是FPR=TPR相等的点random chace指的是随机分类时,TPR和FPR的线图中FPR为0.1时,TPR为0.8,有种类似于以0.1的FPR换取了TPR的正确率AUCROC曲线所覆盖的面积来评估模型的分类能力精度Precision也就是TPR预测正例的总数量中正确的数量召回率Recal真正为正

2022-03-10 16:28:45 1574

原创 leetcode DFS 938

938设置判断层次的数量# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def rangeSumBST(self, root: Tr

2022-03-07 00:31:52 62

原创 leetcode 784 回溯

新学的点递归时,直接在函数里变化 回溯的变化可以不用写 如下边代码#位置class Solution: def letterCasePermutation(self, s: str) -> List[str]: def bt(s,temp,index): if len(s) == index: res.append(temp) return if s[inde

2022-03-05 00:22:07 215

原创 算法进阶day3

决定系数TSS(样本平方和)RSS(残差平方和)又称为误差平方和衡量模型拟合效果R^2在RSS(误差平方和)>TSS(样本平方和)时,R^2<0回归平方和在无偏估计的情况下,才有TSS=ESS+RSS其余情况 TSS>=RSS+ESS局部加权回归一般的线性回归局部加权回归增加了w,对某些部分的进行加权,使其复杂度增加w权值的设置1、高斯核函数τ称为带宽,控制着训练样本x(i)随着与x(待查点,就是要估计的点的坐标)距离增大而增大的衰减速率(这块还

2022-03-04 13:31:46 634

原创 机器学习算法进阶 day2

线性回归最小二乘法的解释由中心极限定理可以得到误差ε服从正态分布中心极限定理的意义很多随机现象可以看做是众多因素的独立影响的综合反应,旺旺近似服从正态分布,应用前提是多个随机变量的和,有些问题是乘性误差,另作讨论。对误差ε求似然函数要使得似然函数最小,可以将问题简化为求解的最小值即为最小二乘法最小二乘意义下的参数最优解参数的最优解方程为了使得函数有意义会加入拉姆塔λ线性回归的惩罚因子(正则化)L2正则化,可以使得参数尽量简单,防止过拟合L1正则有挑选特征的作用,使参

2022-03-02 01:09:03 80

原创 回溯法 leetcode78 77 46

回溯法points:1 是一个不断试错的算法2 采用递归思想 在进入下一层后 会进行一次回溯(将该层更改的复原 方便进行别的方向的试错)经典例题 78看到题目如何想到回溯:题目要求返回输入的所有子集point1:返回子集长度分别是0,1…,len(nums) 每次运行都将层次+1point2: 回溯的思想 在长度确定的情况下 添加元素 之后要下个层次添加元素 将上个层次添加的元素删除point3: 递归返回空值 不返回任何元素point4:不允许重复,直接向后遍历即可代码:class

2022-03-01 23:55:19 60

原创 机器学习进阶day1

最大似然估计的概念最大似然估计就是在已知样本的前提下,找出使得样本发生最大的概率的参数值。求解最大似然估计的步骤:(1) 概率密度函数相乘得到似然函数(2) 对似然函数取对数得到对数似然函数(3) 对对数似然函数求导(4)求解赔率公平赔率为概率的倒数真实赔率为公平赔率×α(小于1的系数)PCA的理解实际操作,将样本在某个方向上进行投影,使得样本降维主方向:使得在某个方向投影后的方差最大的方向称为PCA的主方向One-hot编码对一些文本类别转换成数值类型的数据,会导致样本特征膨胀

2022-02-28 13:00:17 861

原创 leetcode 链表+指针19

反思链表题目时,如果无法确定头节点是否会改变时,要设置dummy节点dummy = Listcode(0)dummy.next = headcur = dummy.next此时cur可以改变dummy.next,只对cur进行操作我的思路先计算整个链表的长度(length)。倒数第n个节点为第(length-n+1)个节点,因此遍历到(length-n)时,设置cur.next = cur.next.next代码如下# Definition for singly-linked list.

2022-02-20 22:56:29 177

原创 机器学习基础——chapter1

数据类型以及数据集组成离散型数据:记录不同类别个体所得到的数据,例如三种马,企业类型数目,职工人数,不能再细分,数值一般为整数或者自然数计数。连续性数据:在一定区间内可以任意取值的数据类型称为连续性数据,例如身高范围在[1.5,2]中可以任意取值,相邻两个数之间可以无限划分,数值一般为小数。数据集组成:特征值+目标值特征抽取特征抽取APIsklearn.feature_extraction字典特征抽取对字典型数据进行特征值化字典特征抽取语法DictVectorizer(sparse=T

2022-02-20 20:14:05 127

原创 leetcode 189

我的解法(切片)设一个额外的空间来储存翻转后的数组point1:不管怎么翻转 数组都是按照原来顺序的,除了nums[k-1]与nums[k]两数不是原来的顺序,也就是找到翻转后的nums里第一个数即可找到分块在原nums进行切片point2:注意k可能比len(nums)大 out of index range 因此 k%=len(nums)(若大于len(nums)移动的位置刚好是k%len(nums))nums:1 2 3 4 5 n=len(nums)=5 假设k=1 nums[0]=5

2022-02-17 23:07:59 201

原创 linux day2

基础命令操作关机/重启命令shutdown -h time 会在规定的time关机shutdown -h now 现在关机shutdown -h +10 十分钟后关机shutdown -r now 立刻重启-h 关机 -r 重启init 0关机 init 6重启df命令 df -h 显示整个硬盘的使用情况du du -h 显示当前路径的使用情况ifconfig 显示网络状况 可以查看ip地址ping (一个ip地址) 可以与ip地址的主机进行联系useradd xxx 创建

2022-02-17 00:12:38 402

原创 leetcode 二分查找 35

该题与左闭右闭二分查找的区别二分查找的while条件里是否判断nums[mid] == target 决定了left < right or left <= right如果有 if nums[mid] == target: return True 则left <= right若无 则 left < right在while 条件为 left < right的情况下时,right = len(nums)且right指针实际nums的长度 (在边界插入时,right取len(

2022-02-16 13:42:57 311

原创 leetcode 704 二分查找法

二分查找法复习二分查找的应用条件:1.数组为有序数组。2.数组无重复元素无递归版本就是一个while+一些条件,while时要加上first = last指向同一数时的条件,这样才能判断两个指针相等时指向的数。代码:def binary_search(nums,target): n = len(nums) first = 0 last = n -1 while first <= last : mid = (first+last)//2 if nums[mid] == targe

2022-02-16 12:15:24 243

原创 leetcode 933 队列

队列复习类似于现实中排队 先到先得 先进先出在Python中调用方法为queue = colletions.deque()添加queue.append()索引访问与列表相同删除元素先进先出queue.popleft()删除最左边元素933与队列的联系队列的思想先进先出 933要求队列中元素在不满足先加入进来的元素t的[t-3000,t]范围内时,不计入不满足条件的元素的个数。point:这个元素其实是时间的累计,因此是队列内递增累计加入元素的,不会存在前面元素太大,导致范围过大,后面元素不

2022-02-15 22:54:14 340

原创 linux操作系统 day1

常用命令ls 显示当前文件夹中的文件 ls -a 显示隐藏文件夹 ls -l 列表的形式显示当前目录下的文件夹 ls -s 显示合适的单位pdw 显示当前目录cd 读取某个文件夹touch 创建新的文件 如果创建的文件名以.开头则设置该mkdir 创建文件夹 --help 查看帮助文档cat cat 文件名 查看文件内容gedit 编辑文件内容rm 删除命令*通配符 2* 代表 以2位开头的所有文件 ?通配符 1?3 代表头和尾为1、3的所有文件 []通配符 1[1234]4

2022-02-15 14:13:16 164

原创 leetcode 栈 496

栈+哈希表栈 储存nums2 哈希表储存nums2中每个数字对应的右边第一个大于该数的对应表class Solution: def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]: dict, s,d = {}, [] #dict 哈希表 s 栈 for i in nums2: #遍历nums2 while s and i >

2022-02-11 00:03:21 160

原创 leetcode 20 栈

栈思路很简单 遇到左边的括号直接加入栈 按照栈先进后出的思想 如果遍历的字符有符合括号的元素 删除最后一个进入栈的元素class Solution: def isValid(self, s: str) -> bool: n = len(s) stack = [] dict1 = ('[','(','{') #添加字符串以及字典 左括号以及右括号对应的左括号 dict2 = {']':'[',')':'(','}':'{'}

2022-02-10 13:41:58 259

原创 leetcode 203 数据结构 链表

递归不是很能理解 大概是遇到等于val的返回下一个值 否则返回当前值class Solution: def removeElements(self, head: ListNode, val: int) -> ListNode: if not head: return head head.next = self.removeElements(head.next,val) if head.val == val:

2022-02-10 13:08:24 258

原创 leetcode 206数据结构 链表

遍历解法当指针混乱时,设置新的遍历储存指针# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def reverseList(self, head: ListNode) -> ListNode:

2022-02-09 22:39:53 42

原创 leetcode array 485

我的解法class Solution:def findMaxConsecutiveOnes(self, nums: List[int]) -> int: n = len(nums) count = 0 result = 0 if n == 1: if nums[0] == 1: return count+1 else: return count for i in range(n)

2022-02-08 13:48:04 297

原创 leetcode第十题 35

我的解法先写特殊情况 注意相同数时,插在列表中的该数的前一位class Solution: def searchInsert(self, nums: List[int], target: int) -> int: n = len(nums) if target <= nums[0]: return 0 if target == nums[-1]: return n-1 if

2022-02-08 00:10:50 336

原创 leetcode第七题 移除元素

我的解法——硬解class Solution: def removeElement(self, nums: List[int], val: int) -> int: a = 0 # a负责更新每次删除后的位置 举个栗子 如果列表删除了第0个位置的数 原列表中第1个位置的元素就移动到第0个位置 下次i=1 漏判了 原列表中的第1个位置的元素 for i in range(len(nums)): if nums[i-a] == val:

2022-02-04 22:54:05 410

原创 leetcode第五题 合并有序链表

leetcode第五题 合并有序链表

2022-02-02 22:56:31 320

原创 leetcode第四题——公共前缀

解法一:通过lcp方法对两个字符串查找相同部分class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not strs: #若无字符串则返回空 return "" pre, count = strs[0], len(strs) #第一个字字符串 以及 strs个数 for i in range(1, count)

2022-02-02 00:22:02 5459 2

原创 leet第二题(回文数)

我的解法先用str将数转为字符串 再按照顺序以及逆序存入列表 判断是否相等class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """ a = str(x) b = [] c = [] n = len(a) if x< 0 :

2022-01-31 15:42:54 214

原创 leetcode第一题(两数之和)

我的解法 双指针class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ n = len(nums) #列表长度 cur = 0 #初始化指针 cur_move = cur + 1 #初始

2022-01-31 15:14:38 179

原创 数据结构与算法Day7

数与数算法树的概念:是一种抽象数据类型(ADT),是由n个有限节点组成一个具有层次关系的集合。具有以下四个特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;树的术语节点的度:一个节点含有的子树的个数称为该节点的度;树的度:一棵树中,最大的节点的度称为树的度;叶节点或终端节点:度为零的节点;父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;孩子节点或子节点:一个节点含

2022-01-31 00:06:08 80

原创 数据结构与算法Day6

快速排序将两部分数据分别进行拍讯,整个排序过程可以用递归进行,以达到整个数据变成有序序列操作步骤为:1.先从序列中挑出一个元素,以这个元素为基准值。2.将剩下数列中的元素分别以基准值为中心,比基准大的排在基准的右侧,比基准小的排在基准的左侧,操作完后形成以基准值为中心的新序列。3.递归地,将以基准值两边的序列看成两个子序列继续操作。在Python中实现def quick_sort(alist,first,last): '''快速排序 递归嵌套''' if first >=

2022-01-30 19:25:02 1187

原创 数据结构与算法Day5

排序算法是一种能将一串数字按照顺序(升序或者降序)排列的算法排序算法的稳定性指的是两个等值的数R、S在排序时会不会改变原来的顺序,不改变则证明该算法是稳定的,否则则不稳定。冒泡排序重复遍历需要排序的数列,但每次只比较两个数,将大的数排到后一个位置上,这样反复排序,最后会将整个数列最大的数字排到数列的最后一个位置。下一次排序时则不比较最后一个数,比较第一个数到倒数第二数,这样反复循环,直到排序到第一对数。比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相邻元素作同样的工作,

2022-01-29 16:36:12 1037

原创 数据结构与算法Day4

#1.双向链表#2.单向循环链表#3.栈#4.队列以及双向队列双向链表在单链表的基础上,增加了一个链接,指向前一个节点(prev以及next两个链接)当当前节点为头节点时,prev指向空置,而next指向下一个节点。双向链表的操作is_empty() 链表是否为空length() 链表长度travel() 遍历链表add(item) 链表头部添加append(item) 链表尾部添加insert(pos, item) 指定位置添加remove(item) 删除节点search(i

2022-01-29 00:14:34 1199

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除