机器学习
空白=null
这个作者很懒,什么都没留下…
展开
-
json转excel[几百兆的数据量]
【代码】json转excel[几百兆的数据量]原创 2022-09-15 15:57:08 · 226 阅读 · 0 评论 -
使用ELMO提取词向量后,通过highway+linear降维
代码参考链接:https://blog.csdn.net/sinat_34611224/article/details/83147812所需要的语料模型可以从上面的链接获取from allennlp.modules.elmo import Elmo, batch_to_idsimport reimport nltkimport numpy as npfrom torch import nnimport tensorflow as tfimport torch.nn.functional as原创 2022-05-29 21:56:16 · 211 阅读 · 0 评论 -
新手上手超算平台最易方法
前言(可以忽略不看)知道要在这个平台上跑代码的时候,教程上说的是运行.py文件需要slurm语言提交脚本语言。于是开始百度,结果有的根本就没有讲脚本语言是使用vim编写,使用 vim ee.sh进入编写,至于如何退出,可以参考这个。对了,千万不要在登入节点运行代码。正篇:salloc -N 1 #表示申请一个节点它会返回一个作业号squeue找到作业号对应的行,那行最后一个位置就是节点号ssh c340然后就像你在你自己电脑命令行上运行代码一样就可以了使用conda activ原创 2022-05-13 10:02:01 · 769 阅读 · 1 评论 -
计算文本中包含的单词数并存储到表格中
import reimport nltkimport pandas as pdimport numpy as npimport xlsxwriterdef word_count(text): # text = text.replace('\n', '').split('\t') text=re.sub(r'http[:.]+\S+', '', text) # print(text) text = re.sub(r'[0-9]+', ' ', text) # 去除数原创 2022-03-29 12:11:41 · 326 阅读 · 0 评论 -
在标点符号前面加空格,方便情感词典senticNet的使用
在使用senticNet的时候,输入单个单词disgusting有反应,能判断出是一个消极词,但是在输入一整句话的时候,就没办法检测到disgusting,后来debug的时候方向,遍历句子中的单词的时候是"disgusting."估计就是这个原因使得词典判断句子情感极性不准确。解决方式:line ='This place is disgusting, absolutely horrible, it is my second stay here, there is a strange stain on原创 2022-03-17 15:11:09 · 994 阅读 · 1 评论 -
创建测试集,数据集,验证集时y[mask,:]作用
原创 2022-02-27 21:55:35 · 147 阅读 · 0 评论 -
创建元路径的.mat文件
这样就会创建一个变量名为“feature”的变量(这个变量名是可以更改的)。(此处需要注意的是,1、这个文件类型需要是microsoft office格式,并且COM加载项中的对勾全部取消)同样的操作,创建元路径这样就将两个.mat文件保存到一个文件中了。和HAN代码数据集的格式一样了。遇到的问题解决方法以及参考链接:1、无法激活excel工具表我的COM加载项是在选项->工具中找到的。2、将多个.mat文件保存为一个.mat文件3. 将excel文件保存为.mat文件...原创 2022-02-27 11:31:42 · 1958 阅读 · 8 评论 -
python创建元路径的邻接矩阵
此例构建的是用户-评分-用户的元路径。索引号即对应的用户id。# 构建稀疏矩阵import scipy.sparse as ssfrom itertools import combinations, permutationsimport numpy as npimport pandas as pddef build_matrix(aa,l):#aa代表邻接矩阵索引号,l是最后要构建的邻接矩阵 # aa = [0, 2, 3] A = list(permutations(aa,原创 2022-02-24 11:33:51 · 1789 阅读 · 6 评论 -
使用java构建元路径,生成邻接矩阵
对元路径的理解:(本人做的是文本方向,所以就以评论者-评论数-评论者作为一条元路径啦)元路径就是多个(大于2个)节点通过另一个类型的节点连接起来的路径,在yelp数据集中我想构建 评论—评论数量—评论 这条元路径。那就是找到相同评论数的评论,这些评论构成一个邻接矩阵。然后有不同的评论数,如142个评论数构成一个邻接矩阵,143个评论数构成一个邻接矩阵…这些小的邻接矩阵最后构成一个全节点的大邻接矩阵。最后这个矩阵就是元路径 评论—评论数量—评论 的矩阵了。伪代码:1.在数据集中将自己需要的两列数据摘取出原创 2021-11-06 21:13:59 · 507 阅读 · 1 评论 -
GAT代码
layers.pyimport numpy as npimport torchimport torch.nn as nnimport torch.nn.functional as Fclass GraphAttentionLayer(nn.Module): """ Simple GAT layer, similar to https://arxiv.org/abs/1710.10903 """ #对实例的属性进行初始化 def __init__(self原创 2021-10-16 20:38:18 · 925 阅读 · 1 评论 -
GAT代码理解
GAT核心公式一、在layers.py中计算GraphAttentionLayer,选框内系数α的求法如下:W的求法如下:【1. 其中涉及到的xavier初始化方法是为了使得每一层输出的方差应该尽量相等#初始化w参数nn.init.xavier_uniform_(self.W.data, gain=1.414)】计算Wh计算e需要注意的是此处求得的e值是所有顶点之间的e值,到了后面torch.where的时候才是计算的相邻节点之间的e值。计算Wh2的时候注意a的取值,感觉它是取了各原创 2021-10-16 20:27:31 · 3947 阅读 · 10 评论 -
GCN代码
代码可以在github上fork,本文主要是加了一些注释,并且搭配本人所作笔记【GCN代码笔记】layers.pyimport mathimport torchfrom torch.nn.parameter import Parameterfrom torch.nn.modules.module import Moduleclass GraphConvolution(Module): """ Simple GCN layer, similar to https://arx原创 2021-10-11 20:33:10 · 1346 阅读 · 2 评论 -
GCN代码笔记
代码来源:https://github.com/tkipf/pygcn涉及数据集:cora学习代码方法:以下就是我做的对GCN代码的笔记,整理不易,大佬莫喷,嘻嘻!GCN代码中layers就是图卷积GraphConvolution的代码layers中,forward即神经网络的前向传播,即上面11的内容,GCN的数学公式也是在这里应用init 中包括对权重的处理和对偏置的处理,调用的是Parmeter()forward部分再调用init部分models即整个模型的整体架构,如此论文中用了原创 2021-10-11 20:21:59 · 612 阅读 · 0 评论 -
HGAN部分代码
main.pyimport torchfrom sklearn.metrics import f1_scorefrom utils import load_data, EarlyStoppingdef score(logits, labels): #在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不属于API。 _, indices = torch.max(logits, dim=1) prediction = indices.long().c原创 2021-09-30 17:52:48 · 702 阅读 · 4 评论 -
HGAN代码加笔记的理解
1.在类的方法或属性前加一个“_”单下划线,意味着该方法或属性不应该去调用,它并不属于API。2.Python中反斜杠也可以用在一行结尾做续行符使用g, features, labels, num_classes, train_idx, val_idx, test_idx, train_mask, val_mask, test_mask = load_data(args[‘dataset’])我看这个也是根据设置的元路径进行图的构建,根据主函数中上面这句话,下载数据集,跳到utils文件下载数据集那原创 2021-09-30 17:47:50 · 1228 阅读 · 1 评论 -
集成学习Boosting与Stacking的区别
Boosting有三种典型的算法是AdaBoost、XGBoost和GBDT(计算残差)Boosting是基于样本的是因为在训练过程中每次训练的数据总量不会变,而是不断调整上一步预测错误数据的权重,然后继续训练,最后将弱的分类器组合成强的分类器(可见AdaBoost算法加以理解);stacking基于模型的是在训练过程中不断调整模型参数,然后得到最终的模型,再使用逻辑回归组合这些最终模型。参考链接:https://www.biaodianfu.com/boosting.html...原创 2021-08-06 10:28:25 · 776 阅读 · 0 评论 -
机器学习考点---过拟合与欠拟合、CNN原理......
2 、 与数据相关的内容:数据的标注来源、规范化、增广、噪声处理怎么处理?数据有噪声好不好?测试集、验证集、训练集各自的作用:训练集:参数调优。验证集:超参、模型的选择,模型评估,正则化 。为什么用验证集进行正则化防止过拟合而不是训练集:通过 validation_data 来设置超参数,一旦我们得到了想要的超参数,就用 test_data 做最后的精度评估。这让我们相信test_data的精度能够真正体现网络的泛化能力。测试集:测试模型泛化能力。数据规范化(数据变换策略之一)数据增广(原创 2021-07-12 20:49:26 · 1387 阅读 · 0 评论 -
机器学习--解决一个结构化问题前的考虑因素,ML思考流程
数据方面:数据是否可以获得,以下是数据获取的一些来源:数据的标注成本需要从人力,财力等方面去考虑决定选择哪种学习方式有监督的学习需要标注的数据作为先验经验。考虑是否可以选择半监督、无监督的学习方式,或者选择对偶学习。数据预处理数据预处理的任务主要包括数据清理、数据集成、数据归约、数据变换。算法方面:判断这个问题属于哪种问题,分类?结构化预测?回归?数据生成?知识获取?然后决定选择哪种算法作为baseline。如,二分类问题最好选择SVM作为baseline模型原创 2021-06-28 10:14:39 · 144 阅读 · 0 评论