- 博客(38)
- 收藏
- 关注
原创 字符串相关题目
1、指针相关344. 反转字符串.编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]双指针即可class Solution: def reverseString(self, s: List[str]) -> None: """ Do no
2021-07-30 00:00:50 362
原创 哈希表经典题目
1.哈希表哈希表(hash table),也可译为散列表。官方解释为:哈希表是根据关键码的值而进行直接访问的数据结构。我们先不管这个官方解释到底啥意思,直观上看,数组就是一张散列表。哈希表中的关键码就是数组的索引下标,我们可以直接通过下标来访问数组中的元素。哈希表主要用于快速判断一个元素是否出现在集合中。只需要O(1)的时间复杂度就能做到。2.哈希函数将元素映射到哈希表上就涉及到了哈希函数。比如要查询某个学生是否在一所学校中,需要将学生姓名映射为哈希表上的索引,通过查询索引下标快速判断该学生
2021-06-08 22:19:03 4067 5
原创 链表经典题目
一、虚拟头结点题目203. 移除链表元素.给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。在链表中想要删除一个节点,让节点(待删除节点的上一个节点)的next指针指向下下个节点即可(node.next = node.next.next)。除了正常的删除,我们还需要考虑特殊的情况,比如,删除的是头节点该怎么办?第一种方式:直接使用原来的链表进行删除操作即将头节点向后移动一位即可然后再将原本的头节点删
2021-05-19 11:20:34 546
原创 数组经典题目
一、二分查找题目704.二分查找.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。题目中的前提条件有:1.数组为有序数组2.数组中无重复元素数组有序是使用二分法的前提,而且如果有重复元素,二分查找返回的元素下标可能不是唯一的,这些都是使用二分法的前提,看到题目满足如上条件时,可以考虑一下是不是可以使用二分法。二分法的思想虽然简单,但涉及边界条件,需要清楚定义区间,也就是定
2021-04-29 17:24:03 1055
原创 项目笔记
首先删除D:\neo4j-community-4.1.1\data\databases目录下的graph.db文件在D:\neo4j-community-4.1.1\bin目录下新建importdata文件夹,放入csv格式的文件,使用cmd运行到bin目录文件下,执行命令:neo4j-admin import --database=graph.db --nodes importdata\foshan_entity.csv --relationships importdata\foshan_roles.
2020-10-15 15:03:47 403 8
原创 Task4 查找2
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路:第一反应是暴力破解,但是超时了(理所当然的失败)。讨论区提示用哈希表,python中可以使用字典,像这种需要索引和值的,可以
2020-08-27 18:09:48 187
原创 Task05 数据建模和数据评估
1 数据建模如何选择合适的模型?1.监督学习还是无监督学习?2.任务需求3.样本量及特征的稀疏性4.选择一个基本的模型作为baseline,进而再训练其他模型做对比,最终选择泛化能力或性能比较好的模型sklearn的算法选择路径:1.1 切割训练集和测试集留出法:· 将数据集分为自变量和因变量· 按比例切割训练集和测试集(一般测试集的比例有30%、25%、20%、15%和10%)· 使用分层抽样· 设置随机种子以便结果能复现交叉验证法:· 将数据集D划分为k个大小相似的互斥子集
2020-08-26 23:04:10 243
原创 Task03 基于支持向量机的分类预测
1 支持向量机介绍支持向量机(Support Vector Machine,SVM)常用于数据分类,也可以用于数据的回归预测中。对于一个二分类,我们得到了以下两种分类器的决策边界(黑线和蓝线):如果此时新加入一个属于红色数据点的新数据,黑色的线会把这个新的数据集分错,而蓝色的线不会。以上的例子较为主观,客观地评判分类器的健壮性,我们需要引入一个概念:最大间隔。最大间隔刻画着当前分类器与数据集的边界,以这两个分类器为例:可以看到, 蓝色的线最大间隔是大于黑色的线的,所以我们会选择蓝色的线作为我
2020-08-25 23:27:53 755
原创 Task04 特征工程
1 特征工程1.1 为什么重视特征工程数据挖掘的二八原则:• 80% 的精力 => 选取特征• 20% 的精力 => 模型融合什么是特征工程?• 基于数据分析与探索提取潜在有价值的特征特征工程有利于我们构建最后的模型1.2 特征提取与特征组合(1)如何进行特征提取• 基于数据分析与探索提取• 箱型图分析 => 交易量与周几有关 => 最终应得到 7个0-1型特征(是否周一、是否周二 ……… )• 点线图分析 => user_start_level(
2020-08-25 16:32:16 230
原创 Task03查找1
搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0解题思路:二分查找定义左侧下标left,右侧下标right,计算中间下标mid每次根据nums[mid]和ta
2020-08-24 21:50:14 178
原创 Task04 数据可视化
1 准备工作matplotlib的通常引入约定是:import matplotlib.pyplot as plt在Jupyter中运行%matplotlib notebook,就可以直接显示图像,不需要每次都运行plt.show()。1.1 figure和subplotmatplotlib的图像都位于Figure对象中。使用plt.figure创建一个新的Figure:fig = plt.figure()相当于创建一个空画布,然后我们可以在这个画布上绘图,需要用add_subplot创建
2020-08-24 21:31:02 311
原创 Task03 时间序列模型
1 时间序列预测模型1.1 时间序列分解时间序列是指将同一 统计量的数值按其发生的时间先后顺序排列而成的数列,常用按时间顺序排列的一组随机变量????1,????2,⋯????????,⋯表示 一个随机事件的时间序列,简记为 {????????}1.1.1 时间序列变化因素时间序列的各种变化都可以归纳成四大类因素综合影响• 长期趋势 (trend):会导致序列出现明显的长期趋势• 循环 波动 (circle):会导致序列呈现出周期性波动• 季节性变化 (season):会导致序列呈现出和季节
2020-08-22 23:04:48 1174
原创 Task03 数据重构
1 数据的合并1.1 加载数据并使用不同的方法合并import numpy as npimport pandas as pd#加载数据text_left_up = pd.read_csv("data/train-left-up.csv")text_left_down = pd.read_csv("data/train-left-down.csv")text_right_up = pd.read_csv("data/train-right-up.csv")text_right_down = p
2020-08-22 20:05:01 230
原创 Task02 基于决策树的分类预测
1决策树的介绍和应用决策树的核心思想是基于树结构对数据进行划分:1.1 决策树的主要优点:(1) 具有很好的解释性,模型可以生成可以理解的规则。何为可解释性?即模型逻辑/预测结果多大程度上是人类可以理解的,也就是说我们能够理解一个模型的整个逻辑,并遵循整个推理导致所有不同的可能结果。(2)可以发现特征的重要程度。特征的重要程度,比如我们如何知道根节点需要选择“有房”这个属性,而不是其他的“有车”“有存款”等等?数学上有一种方法就是信息熵。整个过程的描述有点复杂,可以查看链接: link.除了信
2020-08-21 23:03:11 1169
原创 Task02 时间序列规则
1 时间序列规则1.1 为什么要重视规则很多比赛都可基于对背景的理解和数据分析获得有用规则,通过“ if A then B等方式设计基准方案。在企业、公司里也常采用基于规则的方案。对于本次赛题,我们需要从过去的数据预测未来的数据,从预测的角度说,周期性是核心。1.2 基于周期因子的时间序列预测假设给定下面的数据,任务是预测第四周每天的客流量。.周一周二周三周四周五周六周日周均值第一周20107050250200100100第二周261
2020-08-20 23:05:31 299
原创 Task02 数据清洗及特征处理
1 数据清洗简述我们拿到的数据通常是不干净的,所谓的不干净,就是数据中有缺失值,有一些异常点等,需要经过一定的处理才能继续做后面的分析或建模,所以拿到数据的第一步是进行数据清洗,本章我们将学习缺失值、重复值、字符串和数据转换等操作,将数据清洗成可以分析或建模的样子。2 缺失值观察与处理2.1 任务一 观察缺失值(1) 请查看每个特征缺失值个数#方法一df.info()#方法二df.isnull().sum()执行后发现Age, Cabin, Embarked列有缺失值。(2)
2020-08-20 17:13:46 247
原创 Task02 动态规划
最长回文串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解题思路:回文串本身就具有状态转移的性质:删除回文串的头尾两个字符还是回文串,因此就可以使用动态规划的方法解决。我们使用dp[i][j]保存状态(以下用P(i,j)表示),表示字符串s的第i到j个字符组成的子串是否为回文串:这里的其他情况包含可能性:1.子
2020-08-19 22:31:24 159
原创 Task01 分治
Pow(x,n)实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。解题思路:幂函数也就是将x与相乘n
2020-08-19 21:34:06 213
原创 Task01 基于逻辑回归的分类预测
第一部分 准备知识使用一个小Demo讲解了可视化的过程,以及如何使用sklearn的方法进行逻辑回归分类。1.1 需要导入的库函数## 基础函数库import numpy as np ## 导入画图库import matplotlib.pyplot as pltimport seaborn as sns## 导入逻辑回归模型函数from sklearn.linear_model import LogisticRegression1.2 训练逻辑回归模型##Demo演示Logis
2020-08-19 18:18:01 390
原创 Task01 数据探索与分析
第一部分 赛题解读赛题介绍.数据集介绍及下载.1.1 赛题背景介绍1.蚂蚁金服拥有上亿会员,每天都涉及大量的资金流入和流出,资金管理压力会非常大。2.在既保证资金流动性风险最小,又满足日常业务运转的情况下精确地预测资金的流入出情况变得尤为重要。赛题需要我们根据余额宝用户的申购赎回数据等信息预测未来每日的资金流入流出情况。1.2 赛题数据介绍解压数据集后可见五个文件。1.2.1 用户信息表用户信息表: user_profile_table 。总共随机抽取了约 3 万用户,其中部分用户在 2
2020-08-18 23:36:02 769
原创 Task01 数据基础操作
第一部分 数据加载1.1 载入数据数据集来自kaggle上的一个竞赛链接.以及项目需要使用的数据集 链接.任务一 :导入numpy和pandasimport numpy as npimport pandas as pd任务二:载入数据(1) 使用相对路径载入数据(2) 使用绝对路径载入数据#使用相对路径df = pd.read_csv('train.csv')df.head(3)#查看前三行#使用绝对路径df = pd.read_csv('D:/Datawhale学习/八月组
2020-08-17 21:36:45 991
原创 Task6 基于深度学习的文本分类3
Task6 基于深度学习的文本分类36.1 学习目标1.了解Transformer的原理和基于预训练语言模型(Bert)的词表示。2.学会Bert的使用,具体包括pretrain和finetune。6.2 文本表示方法Part46.2.1 Transformer原理Transformer是在“Attention is All You Need”中提出的,模型的编码部分是一组编码器的堆叠(论文中依次堆叠六个编码器),模型的解码部分是由相同数量的解码器的堆叠。编码部分的结构完全相同,但是并不共享
2020-08-04 14:42:31 221 1
原创 Task5 基于深度学习的文本分类2
Task5 基于深度学习的文本分类2这一节尝试寻找更优的深度学习的文本分类模型。5.1 学习目标1.学习Word2Vec的使用和基础原理2.学习使用TextCNN、TextRNN进行文本分类。3.学习使用HAN网络结构完成文本分类。5.2 文本表示方法part35.2.1 词向量本节通过word2vec学习词向量。word2vec模型背后的基本思想是对出现在上下文环境里的词进行预测。具体做法是对于每一条输入文本,选取一个上下文窗口和一个中心词,并基于这个中心词去预测窗口里其他词出现的概率。w
2020-07-30 22:51:24 390
原创 Task 4 基于深度学习的文本分类1
Task 4 基于深度学习的文本分类1与传统机器学习不同,深度学习即提供特征提取功能,也可以完成分类的功能。4.1 学习目标1.学习FastText的使用和基础原理2.学会使用验证集进行调参4.2 现有文本表示方法的缺陷上一章节介绍了几种文本表示方法:1.One-hot2.Bag of Words3.N-gram4.TF-IDF上述方法或多或少都存在一定的问题:转换得到的向量维度很高,需要较长的训练时间;没有考虑单词与单词之间的关系,只是进行了统计。与上述方法不同,深度学习也可以用于
2020-07-27 16:41:41 221
原创 Task3 基于机器学习的文本分类
Task3 基于机器学习的文本分类本章将使用传统机器学习算法来完成新闻分类的过程。3.1 学习目标1.学会TF-IDF的原理和使用2.使用sklearn的机器学习模型完成文本分类3.2 机器学习模型机器学习是对能通过经验自动改进的计算机算法的研究。机器学习通过历史数据训练出模型对应人类对经验进行归纳的过程;机器学习利用模型对新数据进行预测对应于人类利用总结的规律对新问题进行预测的过程。机器学习有很多分支,初学者应该优先掌握机器学习算法的分类,然后对其中一种机器学习算法进行学习。作为一名机器学习
2020-07-25 15:17:58 587
原创 anaconda下安装keras
anaconda下安装keras首先要安装tensorflow: 安装教程.然后查看对应版本: link.安装命令:pip install --default-time=1000 keras==2.3.1 -i https://pypi.tuna.tsinghua.edu.cn/simple把keras改为自己需要的版本就好了。
2020-07-23 10:31:39 710
原创 Task 2 数据读取与数据分析
Task 2 数据读取与数据分析1.学习目标1.学习使用Pandas读取赛题数据2.分析赛题数据的分布规律2.数据读取数据采用csv格式存储,可以直接用pandas进行数据读取的操作。这里的read_csv是读取csv文件的通用方法,第一个参数是文件路径,第二个参数为分隔符,如果想控制读取的行数可以加上第三个参数nrows。head()函数返回对象的前n行,缺省为5。运行后可以看到读取后的数据,有分类标签label,文本数据text,为表格的形式。3.数据分析读取数据集后可以对数据进行
2020-07-22 16:27:42 276
原创 Task1 赛题理解
Task1 赛题理解1.赛题理解1.赛题名称:零基础入门NLP之新闻文本分类。2.赛题目标:接触NLP的预处理、模型构建和模型训练等知识点。3.赛题任务:以自然语言处理为背景,对新闻文本进行分类,是一个典型的字符识别问题。1.1 学习目标理解赛题背景及赛题数据,理解赛题的解题思路1.2 赛题数据赛题数据为新闻文本,按照字符级别进行匿名处理。一共有14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐。1.3 数据标签数据集中标签对应关系为
2020-07-20 16:18:08 188
原创 吴恩达机器学习ex8
第一部分 异常检测这一部分实现异常检测算法,检测服务器的异常行为。1.高斯分布使用高斯模型来检测数据集中的异常数据。公式:μ:均值;σ^2:方差实现代码计算上述两个参数,需要注意的是在octave中,计算方差时,分母使用m-1,而不是mmu = sum(X) / m;sigma2 = sum((X - mu) .^ 2) / (m-1);2.选择阈值ε确定哪些数据异常的一种方法是根据交叉验证集选择一个阈值。可以通过交叉验证集的F1分数实现算法来选择阈值。F1分数由精确度(pre
2020-06-12 12:08:17 342
原创 吴恩达机器学习ex7
第一部分 K-means聚类这一部分实现K-means聚类方法并用于图像压缩。1.实现K-meansK-mean算法是一种自动将相似数据聚类到一起的方法。该算法是一个迭代的过程,开始时随机设定一个质心,之后重复地将数据点分配到离其最近的质心,再重新计算质心。算法过程就是重复以下两个步骤:1)将每个样本点分配到最近的质心2)重新计算每个类的均值作为新的质心由于一开始选定的随机质心对结果有很大的影响,因此通常用随机化质心运行多次。最后选择代价函数最低的值作为解。1.1 最近邻质心代价函数(距离
2020-05-21 16:52:27 695
原创 吴恩达机器学习ex6
第一部分 支持向量机1.使用SVM对线性可分样本进行分类样本点:这一部分让我们使用不同的参数C观察分类效果。C就是SVM中对误分类样本的惩罚程度(正值)。C越大对训练样本的分类就会越准确,但是泛化能力也会变差。C=1时:C=100时:可以看到C=100时虽然没有了误分类样本,但这个决策边界却过拟合了,当样本点轻微波动时,可能就会分类错误。而C=1时虽然有一个误分类的样本,却能满足样本点波动的条件,也就是样本点到决策边界的间距较大。2.高斯核函数SVM2.1 非线性分类这一部分使用SV
2020-05-16 11:51:01 321
原创 吴恩达机器学习ex5
第一部分 正则化线性回归实现线性回归,通过水位预测水量,调试学习算法,检查偏差的方差的影响。1.数据可视化x:水位的变化,y:流出的水量数据集被分为三部分:1)模型将学习的训练集:X,y2)用于确定正则化参数的交叉验证集:Xval,yval3)用于评估性能的测试集:Xtest,ytest% Load Training Datafprintf('Loading and Visualizing Data ...\n')% Load from ex5data1: % You will ha
2020-05-10 17:30:21 737
原创 吴恩达机器学习ex4
第一部分 神经网络题目介绍:使用反向传播实现手写数字识别数据集与上一次作业相同1.数据可视化与上一次作业相同2.神经网络模型这里的内容也与上一次作业相同。3.前馈和损失函数神经网络的损失函数公式:h_θ(x)就是模型中的输出,手写数字分为十类所以K=10,原本的标签维度是(5000,1),需要转化为(5000,10)才能够参与运算,若标签是n,则将第n行置1,其余行置0。...
2020-04-30 15:01:15 511
原创 吴恩达机器学习ex3
第一部分 多分类问题题目介绍:使用逻辑回归识别0到9的手写数字数据集:5000个手写数字的训练样本,每一个训练样本都是20像素×20像素的灰度图像的数字,每个像素由一个表示该位置灰度强度的点编号表示,这个20x20的像素网格被“展开”成一个400维的向量。每一个训练样本都是矩阵X的一行数据,这就得到了一个5000×400矩阵X,其中每一行都是一个手写数字图像的训练示例。训练集的第二部分是一个...
2020-04-17 12:25:38 675
原创 吴恩达机器学习ex2
逻辑回归题目介绍:用现有的数据建立分类模型,通过给出的成绩,预测学生是否能够进入大学,前两维都是学生的成绩,第三维是标签,代表是否能进入大学。1.数据可视化在开始实现算法之前,将数据可视化通常是很有帮助的。这一部分代码已给出。% 分出正样本和负样本的点pos = find(y == 1);neg = find(y == 0);% 绘制plot(X(pos, 1), X(pos, ...
2020-04-07 16:54:08 351
原创 吴恩达机器学习ex1
吴恩达机器学习第一周作业第一部分:线性回归(单变量)题目介绍:预测食品利润,第一列数据是城市的人口,第二列数据是该城市的食品利润。1.绘制数据通过可视化可以更好地理解数据。在ex1.m中已经加载了数据并且设置了X,y变量分别为人口和利润:data = load('ex1data1.txt');X = data(:, 1); y = data(:, 2);m = length(y); ...
2020-04-03 15:07:42 733
原创 在win10下使用anaconda安装tensorflow并导入pycharm
在win10下使用anaconda安装tensorflow并导入pycharm打开anaconda命令行终端输入conda search --full tensorflow查看当前能安装的tensorflow版本选择可以下载的版本进行下载,我用的是清华源的,不知道为什么下载最新的网速特别慢,完全下不动。。输入命令:pip install tensorflow==2.1.0 -i https...
2020-03-11 21:28:53 981
原创 使用cmake编译opencv
1)选择opencv源代码路径2)选择opencv下build文件夹3)点击configure4)选择自己电脑版本的vs5)点击finish等待一段时间后会出现上图的情况,根据需要勾选方框,再点击Generate,当我们点击 Configure 以后需要找到 BUILD_opencv_world 这一个选项,并且勾选它。编译成功这个时候我们再打开 build 文件夹就可以看到生...
2019-02-23 11:17:54 1548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人