Python
文章平均质量分 66
jdmike
机器学习/深度学习
展开
-
深度学习 | BN层原理浅谈
相反的,全连接和卷积层的输出一般是一个对称的,非稀疏的一个分布,更加类似于高斯分布,对他们进行归一化会产生更加稳定的分布。例如Relu激活函数,如果输入的数据是一个高斯分布,经过Relu输出的数据小于0的被抑制,就不是高斯分布了。对于深度学习这种包含很多隐层的网络结构,各隐层学到的权重等参数都在不停的变化,导致隐层的输入分布老是变来变去,产生了所谓的“BN每个batch采样的数据都不一样,但是每次的batch的数据都会被局部均值和方差作用,可以认为是引入了噪声,增强了过拟合能力。(2)加速网络收敛速度,原创 2023-03-01 17:17:09 · 900 阅读 · 1 评论 -
深度学习 | Attention与Transformer
Attention,又称为注意力机制,顾名思义,是一种能让模型对重要信息重点关注并充分学习吸收的技术,它不算是一个完整的模型,应当是一种技术,能够作用于任何序列模型中。原创 2022-08-17 14:34:57 · 656 阅读 · 0 评论 -
Python | datetime与time模块
datetimedatetime对象转字符串datetime指时间类的格式,是一种类似结构体的形式,如datetime(2022,2,11,16,15,20)dt = datetime.now().replace(microsecond=0)dt.strftime(’%Y-%m-%d %H:%M:%S’)字符串转datetime对象例如,有一字符串,value=‘2022/02/11’datetime.strptime(value, ‘%Y/%m/%d’)...原创 2022-02-14 17:41:43 · 391 阅读 · 0 评论 -
JSON踩坑
json.dumps()会将dict缺失值也dump进去,但读出来的时候缺失值会默认为float类型,会导致常规判断缺失值的方式失效。因此,在dumps的过程中,要注意判断缺失值https://www.itranslater.com/qa/details/2582574229292057600...原创 2021-12-02 10:26:54 · 113 阅读 · 0 评论 -
特征异常值处理
数值型特征为了避免异常值, 数值型特征的归一化特殊处理最大值取95%分位数max_v = df.col1.quantile(0.95)最小值取5%分位数min_v = df.col1.quantile(0.05)计算补偿gapgap = (max95 - min5) / 10最终取值max_v = max_v + gapmin_v = min_v - gap if min_v !=0 else 0...原创 2021-10-14 11:41:24 · 398 阅读 · 0 评论 -
Pytorch建模笔记
Pytorch建模笔记文章目录Pytorch建模笔记一、继承式建模1.1 构建数据集1.2 网络搭建1.3 损失函数及优化器API对比一、继承式建模1.1 构建数据集 Pytorch的数据集需要手工将ndarray或dataframe转化为一种pytorch通用的数据集形式。首先需要将ndarray数据转为tensorx_train = torch.tensor(x_train.astype(np.float32))y_train = torc原创 2021-08-17 15:15:31 · 289 阅读 · 0 评论 -
机器学习 | 奇异值分解SVD与实现
前言特征分解——>奇异值分解(SVD)——>隐语义模型(LFM),三个算法在前者的基础上推导而成,按顺序先后出现。三者均用于矩阵降维。其中:SVD奇异值分解为矩阵分解的一种方法,可用于推荐系统中,将评分矩阵补全、降维。奇异值分解(SVD) 将目标矩阵A,转化为三个矩阵相乘,如下: 其中,A为目标矩阵,表示user对item的打分;P为左奇异矩阵,mm维,为User矩阵;Q为右奇异矩阵,nn维原创 2021-05-29 19:36:24 · 2570 阅读 · 0 评论 -
机器学习 | 机器学习之巅SVM系列(一)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2021-05-19 22:40:58 · 231 阅读 · 0 评论 -
用人话讲解tf.split
API原型(TensorFlow 1.8.0):tf.split(value,num_or_size_splits,axis=0,num=None,name=‘split’)这个函数是用来切割张量的。输入切割的张量和参数,返回切割的结果。value传入的就是需要切割的张量。这个函数有两种切割的方式:以三个维度的张量为例,比如说一个20 * 30 * 40的张量my_tensor,就如同一个长20厘米宽30厘米高40厘米的蛋糕,每立方厘米都是一个分量。有两种切割方式:如果num转载 2021-05-10 21:10:51 · 149 阅读 · 0 评论 -
深度学习 | Tensorflow2.0函数式建模笔记
深度学习 | Tensorflow2.0函数式建模Tensorflow2.0主要支持3种建模方式,分别为tf.keras.models.Sequential(), 适合比较简单的网络,前一层输出是后一层输入。class mymodel(tf.keras.models.Model), 继承Model父类的方法,通过super(), call()等方法实现子类的方法。函数式API,自定义Input_layer,output_layer,适合比较复杂的网络搭建,比如Wide&Deep, xDee原创 2021-05-09 12:15:27 · 567 阅读 · 0 评论 -
深度学习 | Tensorflow模型可视化
Netron软件https://github.com/lutzroeder/Netron使用方法直接安装exe,导入模型文件(如.h5),自动生成模型网络原创 2021-04-28 17:06:01 · 407 阅读 · 0 评论 -
机器学习 | 评估准则及指标
文章目录前言一、假设集合如何来衡量一个假设集合?二、如何来衡量假设集合1.分类能力 VC Dimension2.稳定性 bias-variance总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、假设集合首先抛出概念! “假设集合是一类模型的集合”, 如线性模型,多项式模型,树模型,神经网络模型等。机器学习的过程是,选择一类原创 2021-04-14 21:28:31 · 666 阅读 · 0 评论 -
深度学习 | Tensorflow2.0使用心得
Tensorflow2.0使用心得文章目录Tensorflow2.0使用心得Keras一、Simple Model二、使用步骤1.引入库2.读入数据总结Keras Tensorflow2推荐使用keras构建网络,常见的神经网络都包含在keras.layer中 Keras 是一个用于构建和训练深度学习模型的高阶 API。它可用于快速设计原型、高级研究和生产。  原创 2021-04-12 15:04:31 · 456 阅读 · 3 评论 -
机器学习 | 集成学习大杀器GBDT&Xgboost
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录泰勒展开,梯度下降法与牛顿法的联系一、pandas是什么?二、使用步骤1.引入库2.读入数据GBDT与Xgboost区别泰勒展开,梯度下降法与牛顿法的联系一阶泰勒展开:f(x)=f(x0)+f′(x)(x−x0)f(x)=f(x_0)+f^{'}(x)(x-x_0)f(x)原创 2021-04-07 00:11:13 · 336 阅读 · 2 评论 -
Python | 文件读写
f.read()返回类型str,读取全部内容f.readlines()返回类型list,按行读取全部内容f.readline()返回类型str,读取一行内容原创 2021-04-07 00:08:52 · 97 阅读 · 0 评论 -
推荐系统 | 朴素协同过滤算法
文章目录前言一、协同过滤的中心思想二、基于用户的协同过滤算法1. 算法步骤-将用户基于向量化表示,-使用向量空间模型(VSM)计算基础相关性,-利用基础相关性+用户原始行为,计算最终推荐结果2.算法分析总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、协同过滤的中心思想把用户/物品基于向量化的表示:如[1,0,1,0,1],原创 2021-01-09 16:59:39 · 188 阅读 · 0 评论 -
Python | 正则表达式Re
Re模块import restr1 = ''asdf2020b_dev12dasdfasdf' #待匹配2020b_dev12dresult = re.search(r'\d{4}\w_(dev)\d{2}\w',str1)#待匹配字符串result.group() #待匹配字符串组1,即devresult.group(1) Webhttps://regexr.com/速查表原创 2020-12-14 21:39:59 · 237 阅读 · 0 评论 -
Pandas | 缺失值处理
Pandas缺失值处理文章目录Pandas缺失值处理前言一、判断缺失值二、处理缺失值利用sklearn工具填充缺失值总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表原创 2020-12-11 19:10:08 · 200 阅读 · 0 评论 -
解决Pycharm运行速度慢的方法
用惯了Jupyter,Spyder的开发者切换到Pycharm时,发现不论是打开IDE的速度,还是调试的速度都慢的让人想砸电脑,笔者在这花了好长时间生闷气,最终总结了几个坑来解决运行速度慢的问题,希望能帮到大家。1.扩大Pycharm运行内存打开后找到-Xms -Xmx两行,增加运行内存(根据电脑配置,笔者是8G内存),可明显改善打开IDE的速度2.新建工程选择Python解释器笔者常用Anaconda,因此选用了它3.解决运行时查看变量速度慢的方法File->Setting->原创 2020-12-06 20:28:51 · 27471 阅读 · 4 评论 -
机器学习 | 朴素贝叶斯算法
文章目录前言一、贝叶斯定理是什么?条件概率贝叶斯定理二、朴素贝叶斯算法前言 贝叶斯算法是一种分类算法,它以贝叶斯定理作为基础,因此被称为贝叶斯分类。其中“朴素贝叶斯”是贝叶斯分类中最基础的算法。一、贝叶斯定理是什么? 说到贝叶斯定理,不得不佩服伟大的数学家。不是说贝叶斯定理有多么复杂,而是真正的实用于我们的生活。 比如,当我们已知一件事情的条件概率P(A∣B原创 2020-10-27 00:13:03 · 245 阅读 · 0 评论 -
Python | Seaborn绘图
plt.subplots() #同时创建画布figure和坐标轴对象axe, 等价于fig,axes = plt.subplots(1,1)原创 2020-10-11 18:24:51 · 2402 阅读 · 1 评论 -
机器学习 | Sklearn框架
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、sklearn五大基本函数二、使用步骤1.引入库总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参原创 2020-10-11 17:22:25 · 897 阅读 · 1 评论 -
机器学习 | 决策树原理&剪枝&连续值缺失值处理
决策树提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录决策树前言一、基本参数概念信息量信息熵信息增益信息增益率Gini Index二、决策树常用算法1.ID3总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、基本参数概原创 2020-10-03 14:34:12 · 309 阅读 · 0 评论 -
Pandas | 数据融合与拼接(Merge & Concat)
Pandas对于数据的融合主要有以下几种方式数据融合(Merge)pd.merge()方法可理解为"合并",主要注意两个参数:pd.merge(df1, df2, on='xx', how='inner/outer')参数1:onon=‘xx’即依据哪一列进行合并,例如下图中on=‘姓名’,即依据姓名进行合并。参数2:howhow = ‘inner’ (默认)即内连接,根据多表间共同存在的索引进行合并,如下图两个DataFrame中,left和right的原创 2020-09-25 17:36:58 · 1045 阅读 · 0 评论 -
Pandas | 数据分类与聚合(groupby & agg)
Pandas数据分类 当我们拿到数据后,数据往往呈现地十分全面,甚至复杂。如何根据需求提取我们所需的数据,进行分组和聚合,是非常有效的手段!分组方法说明df.groupby(‘A’)根据‘A’列的值进行分组,返回一个groupby对象df.groupby([‘A’,‘B’])根据‘A’列和’B’列的值进行分组,返回一个groupby对象df.groupby(‘A’)[‘B’].agg(‘’)根据‘A’列的值进行分组,并选中分组后的’B’列进行聚原创 2020-09-25 17:29:02 · 1233 阅读 · 0 评论 -
Pandas | 数据类型及基本操作(Series & DataFrame)
Series一维数据结构,数据呈单列,索引为行import pandas as pdimport numpy as nps = pd.Series([18,20,25])pandas会默认用0到n-1来作为Series的index,但是我们也可以自己指定index。index我们可以把它理解为dict里面的key。s = pd.Series([18,20,25], index = ['张三','李四','王五'])#等同于上式pd.Series([18,20,25], index =原创 2020-09-25 17:28:32 · 4820 阅读 · 1 评论 -
Python高级用法与技巧
enumerate方法迭代在for迭代过程中,如果想要同时获取值和索引,可以采用enumerate方法,用法如下:L = ["asdf",1,5]for i,value in enumerate(L): print(i,value) #i = index, value = object常用场景为,给出一个可迭代对象,如list,返回对象的最大值和其索引L = [1,2,3,4,5]def findMaxAndIndex(L): tempMax = L[0] tempInd原创 2020-06-14 16:37:41 · 290 阅读 · 0 评论