自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Task4 基于深度学习的文本分类1-fastText

基于深度学习的文本分类FastTextFastTextFastText是一种典型的深度学习词向量的表示方法,它非常简单通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作。FastText在文本分类任务上,是优于TF-IDF的:FastText用单词的Embedding叠加获得的文档向量,将相似的句子分为一类FastText学习到的Embedding空间维度比较低,可以快速进行训练...

2020-07-27 23:00:38 193

原创 NewsTextClassification-Task3 基于机器学习的文本分类

基于机器学习的文本分类One-hotBag of WordsN-gramTF-IDFOne-hot这里的One-hot与数据挖掘任务中的操作是一致的,即将每一个单词使用一个离散的向量表示。具体将每个字/词编码一个索引,然后根据索引进行赋值。Bag of WordsBag of Words(词袋表示),也称为Count Vectors,每个文档的字/词可以使用其出现次数来进行表示。N-gramN-gram与Count Vectors类似,不过加入了相邻单词组合成为新的单词,并进行计数。TF-ID

2020-07-25 21:33:03 169

原创 33. 搜索旋转排序数组

搜索旋转排序数组二分查找二分查找class Solution {public: int search(vector<int>& nums, int target) { int n = (int)nums.size(); if (!n) return -1; if (n == 1) return nums[0] == target ? 0 : -1; int l = 0, r = n - 1; w

2020-07-25 14:46:33 119

原创 695. 岛屿的最大面积

岛屿的最大面积DFSBFSDFSclass Solution {public: int maxAreaOfIsland(vector<vector<int>>& grid) { if (grid.empty() || grid[0].empty()) { return 0; } int res = 0; for (int r = 0; r < grid.size(); r++) { for

2020-07-25 13:29:07 139

原创 链表相交

链表相交双指针双指针class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode *curA=headA,*curB=headB; while(curA != curB) { if(curA==NULL) curA=headB; el

2020-07-24 10:34:59 117

原创 88.合并两个有序数组

合并两个有序数组从后向前从后向前class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int i = m-1, j = n-1, k = m+n-1; while(i >=0 && j>=0 ) { if(nums1[i]

2020-07-24 09:04:54 169

原创 55. 跳跃游戏

跳跃游戏贪心法贪心法public class Solution { public boolean canJump(int[] nums) { int n = nums.length; int rightmost = 0; for (int i = 0; i < n; ++i) { if (i <= rightmost) { rightmost = Math.max(rightmos

2020-07-24 08:44:44 80

原创 121. 买卖股票的最佳时机

买卖股票的最佳时机暴力枚举法动态规划暴力枚举法满足两个条件:1.卖出在买入后;2.差值最大;class Solution {public: int maxProfit(vector<int>& prices) { int n = (int)prices.size(), ans = 0; for (int i = 0; i < n; ++i){ for (int j = i + 1; j < n; ++

2020-07-24 08:33:22 83

原创 NewsTextClassification-Task2 赛题理解

数据读取与数据分析数据读取数据分析数据读取赛题数据虽然是文本数据,每个新闻是不定长的,但任然使用csv格式进行存储。因此可以直接用Pandas完成数据读取的操作。数据分析句子长度分析;新闻类别分布;字符分布统计;数据分析的结论赛题中每个新闻包含的字符个数平均为1000个,还有一些新闻字符较长,可能需要截断;赛题中新闻类别分布不均匀,科技类新闻样本量接近4w,星座类新闻样本量不到1k;参考:https://tianchi.aliyun.com/notebook-ai/detail?p

2020-07-23 22:22:46 144

原创 NewsTextClassification-Task1 赛题理解

赛题理解新闻文本分类解题思路思路1:TF-IDF + 机器学习分类器思路2:FastText思路3:WordVec + 深度学习分类器思路4:Bert词向量新闻文本分类赛题以匿名处理后的新闻数据为赛题数据,数据集报名后可见并可下载。赛题数据为新闻文本,并按照字符级别进行匿名处理。整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐的文本数据。在数据集中标签的对应的关系如下:{‘科技’: 0, ‘股票’: 1, ‘体育’: 2, ‘娱乐’: 3

2020-07-21 21:35:27 128

原创 Subword Models

Subword ModelsCharacter-Level ModelsSub-word modelsByte Pair EncodingHybrid modelChars for word embeddingsCharacter-Level Models通常针对字符级的模型有两种处理思路:一种是把原有的词向量分解处理,一种是把连接的语言分解成字符。Sub-word models课程这里介绍了介于word-level和char-leval之间的Sub-word models,主要又两种趋势,一种是仍

2020-06-30 22:59:12 142

原创 Word Embeding词嵌入

Word Embeding词嵌入Classical Representation: One-hot EncodingFrom One-hot to Distributed RepresentationStatic Word EmbeddingWord2VecWord Embedding by Matrix FactorizationGlove语言数字化的这个过程叫做 Word Embedding,中文名称叫做 “词嵌入”, 而转化后获得到的向量矩阵就叫做词向量, 其实就是词的数学表示。在过去20多年来,N

2020-06-27 20:12:19 548

原创 CS224n Note-01

Introduction and Word Vectors自然语言处理简要介绍人类语言和单词含义How do we represent the meaning of a word?How do we have usable meaning in a computer?Problems with resources like WordNetRepresenting words as discrete symbolsRepresenting words by their context词向量Word vecto

2020-06-24 19:35:12 125

原创 线性回归总结

线性回归总结线性回归假设二级目录三级目录最大梯度和牛顿法l2&l3回归模型的最终目标是建立自变量x和y之间的关系。线性回归采用一个高维的线性函数来尽可能的拟合所有的数据点,最简单的想法就是根据中心极限定理,最小化函数值与真实值误差的平方(概率解释-高斯分布加最大似然估计)线性回归假设线性回归假设y连续变量,x相互独立,且误差服从均值为0的正态分布二级目录对数似然函数求最大值即为即均方误差,因此用这个值作为代价函数来优化模型在统计学的角度是合理的三级目录最大梯度和牛顿法l2&l

2020-06-23 18:05:23 404

原创 129. 求根到叶子节点数字之和

深度搜索解析三步:递归终止条件:root ->leftNULL;root->right->rightNULL;basecase返回:sum = sum * 10 + root->val;函数关系:dfs(root->left, sum);dfs(root->right, sum);class Solution {public: int ans = 0; void dfs(TreeNode* root, int sum){ s

2020-06-16 09:07:48 107

原创 113.路径总和II

递归方法解析三步:递归终止条件:root == NULL;basecase返回:if(!root->left&&!root->right&&sum==0)total.push_back(thisTotal);函数关系:solve(root->left,total,thisTotal,sum);solve(root->right,total,thisTotal,sum);class Solution {public: vector&

2020-06-14 09:53:14 119

原创 112. 路径总和

路径总和递归方法解析三步:递归终止条件:root == NULL;basecase返回:if(root->val==sum && !root->left && !root->right){return true;};函数关系:hashPathSum(root,sum) = hashPathSum(root->right,sum-root->val)||hasPathSum(root->right,sum-root->val

2020-06-07 07:57:17 109

原创 Datawhale 零基础入门CV赛事-Task5 模型集成

模型集成DropoutTTA在机器学习中的集成学习可以在一定程度上提高预测精度,常见的集成学习方法有Stacking、Bagging和Boosting,同时这些集成学习方法与具体验证集划分联系紧密。由于深度学习模型一般需要较长的训练周期,如果硬件设备不允许建议选取留出法,如果需要追求精度可以使用交叉验证的方法。DropoutDropout可以作为训练深度神经网络的一种技巧。在每个训练批次中,通过随机让一部分的节点停止工作。同时在预测的过程中让所有的节点都其作用。# 定义模型class SVHN_

2020-06-03 10:18:10 89

原创 Datawhale 零基础入门CV赛事-Task4 模型训练与验证

Task4 模型训练与验证构造验证集留出法(Hold-Out)交叉验证法(Cross Validation,CV)自助采样法(BootStrap)构造验证集导致模型过拟合的情况有很多种原因,其中最为常见的情况是模型复杂度(Model Complexity )太高,导致模型学习到了训练数据的方方面面,学习到了一些细枝末节的规律。解决上述问题最好的解决方法:构建一个与测试集尽可能分布一致的样本集(可称为验证集),在训练过程中不断验证模型在验证集上的精度,并以此控制模型的训练。留出法(Hold-Out)直

2020-05-30 21:02:59 138

原创 107.二叉树的层次遍历 II

class Solution {public: vector<vector<int>> levelOrderBottom(TreeNode* root) { if(root==NULL) { return {}; } TreeNode* p = root; queue<TreeNode*> queue; vector<vector<

2020-05-29 08:22:32 105

原创 106. 从中序与后序遍历序列构造二叉树

从中序与后序遍历序列构造二叉树class Solution {public: TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) { int pos = inorder.size()-1; return buildTree(postorder, pos, inorder, 0, inorder.size() - 1); } Tr

2020-05-28 08:35:02 84

原创 Datawhale 零基础入门CV赛事-Task3 字符识别模型

字符识别模型卷积神经网络(Convolutional Neural Network, CNNPytorch构建CNN模型卷积神经网络(Convolutional Neural Network, CNN 卷积神经网络(简称CNN)是一类特殊的人工神经网络,是深度学习中重要的一个分支。CNN在很多领域都表现优异,精度和速度比传统计算学习算法高很多。特别是在计算机视觉领域,CNN是解决图像分类、图像检索、物体检测和语义分割的主流模型。Pytorch构建CNN模型import torchtorch.

2020-05-27 20:47:18 109

原创 决策树总结

决策树总结图形显示内部节点属性划分属性划分三级目录图形显示决策树三部分:1.内部节点2.叶节点3.边内部节点属性划分 构建决策树就是一个递归的选择内部节点,计算划分条件的边,最后到达叶子节点的过程。属性划分三级目录...

2020-05-27 17:32:59 259

原创 106从前序和中序遍历序列构造二叉树

106从前序和中序遍历序列构造二叉树题从前序和中序遍历序列构造二叉树从前序和中序遍历序列构造二叉树class Solution {public: TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { int pos = 0; return buildTree(preorder, pos, inorder, 0, inorder.size()-1

2020-05-27 08:56:00 86

原创 104

104二叉树的最大深度二叉树的最大深度递归法1.递归终止条件:root ==NULL2.basecase:l = maxDepth(root -> left) + 1;r = maxDepth(root ->right) + 13.函数关系:maxDepth(root)=maxDepth(root->left) +1>maxDepth(root->right) +1:?maxDepth(root->left)+1:maxDepth(root->right)

2020-05-26 09:07:32 155

原创 101&102二叉树的层序遍历

层序遍历class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { if(root == NULL) return {}; queue<TreeNode*> queue; TreeNode* p=root; vector<vector<int>> res;

2020-05-25 08:37:02 122

原创 101对称二叉树

class Solution {public: bool isSymmetric(TreeNode* root) { return isMirror(root, root); } bool isMirror(TreeNode *t1, TreeNode *t2) { if (t1 == NULL && t2 == NULL) return true; if (t1 == NULL || t2 == NULL) return fals

2020-05-24 09:49:29 96

原创 Datawhale 零基础入门CV赛事-Task2 数据读取与数据扩增

Datawhale 零基础入门CV赛事-Task2 数据读取与数据扩增数据扩增方法常见数据扩增方法读取数据dataloader使用范例数据扩增方法 在深度学习中数据扩增方法非常重要,数据扩增可以增加训练集的样本,同时也可以有效缓解模型过拟合的情况,也可以给模型带来的更强的泛化能力常见数据扩增方法以torchvision为例,常见的数据扩增方法包括:transforms.CenterCrop 对图片中心进行裁剪transforms.ColorJitter 对图像颜色的对比度、饱和度和零度进

2020-05-23 22:38:02 85

原创 bigquery

bigqueryEDA数据总览在这里插入图片描述Feature Engineering构造特征特征选择EDA数据总览预测目标为TotalTimeStopped_p20, TotalTimeStopped_p50, TotalTimeStopped_p80, DistanceToFirstStop_p20, DistanceToFirstStop_p50 and DistanceToFirstStop_p80Feature Engineering构造特征# Road Encoding

2020-05-23 20:07:13 995

原创 100.相同的树

相同的树同样的遍历并判断节点即可class Solution{public: bool isSameTree(TreeNode *p,TreeNode *q) { if(!p&&!q)return ture; if(!p||!q)return false; return(p->val==q->)&&isSameTree(p->left,q->left)&amp

2020-05-23 08:50:05 103

原创 98验证二叉搜索树

验证二叉搜索树class Solution{public: vector<int> res; bool isValidBST(TreeNode *root){ if(root == NULL){ return truej; } dfs(root); for(i=0;i<res.size()-1;i++){ if(res[i]>=res[i+1])return fal

2020-05-22 08:26:00 93

原创 零基础入门CV赛事-Task1 赛题理解

赛题理解赛事简介学习目标赛题数据数据标签评测指标读取数据解题思路赛事简介**赛题名称:**零基础入门CV之街道字符识别**赛题目标:**通过这道赛题可以引导大家走入计算机视觉的世界,主要针对竞赛选手上手视觉赛题,提高对数据建模能力。**赛题任务:**赛题以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符识别问题。为了简化赛题难度,赛题数据采用公开数据集SVHN,因此大家可以选择很多相应的paper作为思路参考。学习目标理解赛题背景和赛题数据完成赛题报名和数据下载,理解赛

2020-05-19 21:22:58 181

原创 95不同的二叉搜索树

递归方法解析三步:递归终止条件:start>end;basecase返回:TreeNode* node = new TreeNode(i);node->left = l;node->right = r;函数关系:generate(start,end)=helper(start,i-1)*helper(i+1,end);class Solution {public: vector<TreeNode*> generateTrees(int n) {

2020-05-17 08:23:33 64

原创 96不同的二叉搜索树

递归方法解析三步:递归终止条件:start>end;basecase返回:return 1;函数关系:helper(start,end)=helper(start,i-1)*helper(i+1,end);class Solution {public: unordered_map<int, int> m;int numTrees(int n) { if (n == 0) return 0; return helper(1, n);}int hel

2020-05-17 07:42:22 75

原创 暂时

二手车交易价格预测一、EDA1.1数据探索性分析目标1.2 内容介绍1.3 数据预处理二、特征工程2.1特征工程目标2.2特征工程内容介绍2.特征工程一、EDA数据变量说明1.1数据探索性分析目标EDA的价值主要在于了解数据集,确定数据集可以用于接下来的机器学习。了解变量间的相互关系以及变量与预测值之间的关系。引导数据科学从业者进行数据处理以及特征工程,使数据集的结构和特征集用于机器学习更加可靠。1.2 内容介绍1.载入各种数据科学以及可视化库:数据科学库 pandas、numpy、

2020-05-16 21:19:44 240 1

原创 深度优先搜索-数据结构

深度优先搜索DFS-二叉树的中序遍历-递归DFS-二叉树的中序遍历-非递归**深度优先搜索(DFS)**也可用于查找从根结点到目标结点的路径。结点的处理到达最深的结点之后,回溯并尝试另一条路径,回溯时,从栈中弹出最深的结点,后进先出(LIFO),这就是我们在 DFS 中使用栈的原因。DFS-二叉树的中序遍历-递归class Solution {public: void dfs(TreeNode* root, vector<int>& ans){ if(ro

2020-05-15 21:45:35 800

原创 栈-数据结构

栈实现 - 栈栈的用法有效的括号逆波兰表达式求解栈后入先出的数据结构,将首先处理添加到队列中的最新元素。插入操作在栈中被称作入栈 push ,在堆栈的末尾添加一个新元素。删除操作退栈 pop ,将最后一个元素。实现 - 栈#include <iostream>class MyStack { private: vector<int> data; // store elements public: /*

2020-05-15 20:32:03 113

原创 广度优先搜索-数据结构

广度优先搜索广度优先搜索-二叉树层序遍历岛屿数量**广度优先搜索(BFS)**的一个常见应用是找出从根结点到目标结点的最短路径。结点的处理顺序是越是接近根结点的结点将越早地遍历。队列的入队和出队顺序是新添加的节点不会立即遍历,而是在下一轮中处理。结点的处理顺序与它们添加到队列的顺序是完全相同的顺序,即先进先出(FIFO)。这就是我们在 BFS 中使用队列的原因。广度优先搜索-二叉树层序遍历class Solution {public: vector<vector<int&

2020-05-15 09:23:02 996

原创 队列-数据结构

队列使用动态数组实现队列设计循环队列队列使用队列先入先出的数据结构。插入(insert)操作也称作入队(enqueue),新元素始终被添加在队列的末尾。 删除(delete)操作也被称为出队(dequeue),只能移除第一个元素。使用动态数组实现队列 int Front() { return data[p_start]; }; /** Checks whether the queue is empty or not. */ b

2020-05-14 09:34:59 265

原创 双指针-数据结构

双指针链表中的双指针环形链表相交链表删除链表的倒数第N个节点数组中的双指针反转字符串移除元素链表中的双指针环形链表class Solution {public: bool hasCycle(ListNode *head) { ListNode *slow = head; ListNode *fast = head; while(fast != nullptr) { fast = fast->next;

2020-05-13 22:31:56 201

空空如也

空空如也

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

TA关注的人

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