首页 > 其他分享 >kaggle灾难推文82.531%

kaggle灾难推文82.531%

时间:2024-06-12 19:03:55浏览次数:11  
标签:nlp keras kaggle 82.531% train test import csv 推文

一开始window用不了keras-nlp,用wsl想下载tensorflow2.16.1,失败了,现在换了ubuntu

中英文tensorflow显示页面不一样

这是中文界面

这是英文的

就是你用的window系统的话可以用2.10,但2.10之后就只能通过wsl安装了,试了很多次没成功,直接就换成ubuntu

keras-nlp在ubuntu也用不了,tensorflow-text支持macos

ubuntu下完后,我弄了半天,终于把cuda和cudnn,还有anaconda给弄好了,成功安装tensorflow2.16.1,然后打算使用keras-nlp,但是只能安装0.0.2版本,他最新是0.12.1,但是tensorflow-text只支持macos系统,好了,直接放弃,在kaggle上用吧,听说pytorch不用自己手动安装cudnn和cuda,过段时间打算转

调用包和读取数据

调用包

!pip install keras-core --upgrade
!pip install -q keras-nlp --upgrade
import os
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import tensorflow as tf
import keras_core as keras
import keras_nlp
from sklearn.model_selection import train_test_split
from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix

导入数据

这里选择后端为tensorflow,现在也能支持别的

os.environ['KERAS_BACKEND'] = 'tensorflow'
df_train = pd.read_csv("/kaggle/input/nlp-getting-started/train.csv")
df_test = pd.read_csv("/kaggle/input/nlp-getting-started/test.csv")

导入预训练模型

这里主要就是text变量用于训练模型,这个变量没有缺失值,其他变量有缺失,但是用不到,包括keyword,location这些,都用不到,当作分类变量来用,里面种类又太多,不具有分析价值,我查看了text变量,训练集最大长度是157,测试是151,所以使用长度为160,不足的会进行填充,因为没有长于160的,所有不会有text被截断

batchsize = 32
sam_num = df_train.shape[0]
AUTO = tf.data.experimental.AUTOTUNE
X = df_train["text"]
y = df_train["target"]
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2,stratify = y)
X_test = df_test["text"]

模型

preset= "distil_bert_base_en_uncased"
preprocessor = keras_nlp.models.DistilBertPreprocessor.from_preset(preset,
                                                                   sequence_length=160
                                                                  )
classifier = keras_nlp.models.DistilBertClassifier.from_preset(preset,
                                                               preprocessor = preprocessor,
                                                               num_classes=2)

这个模型distilbert是bert的变体,保留绝大数功能,但速度更快,我看kaggle下面的notebook大多数人都用了这个模型。

训练模型

这里用来Adam这个优化器,也是刚开始用,之前一直用rmsprop,网上说这个优化结合rmsprop和adagrad的特性,能自动为为个参数调整learning_rate,之后有时间再看看,epoch只用了2轮,我尝试用更多,但很快就开始在验证集上过拟合,像下面这种,accuracy在验证集上不再上升,val_loss开始上涨,2个轮次是合适的

from keras.optimizers import Adam
classifier.compile(
    loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    optimizer=Adam(learning_rate=1e-5),
    metrics=["accuracy"]
)
history = classifier.fit(
    x=X_train,
    y=y_train,
    batch_size=32,
    epochs=2,
    validation_data=(X_val, y_val)
)

提交结果

sample_submission = pd.read_csv("/kaggle/input/nlp-getting-started/sample_submission.csv")
sample_submission.head()
sample_submission["target"] = np.argmax(classifier.predict(X_test), axis=1)
sample_submission.head()
sample_submission.to_csv("submission.csv", index=False)

用这个大概是80上下,自己从头训练用dense就行吧,毕竟这个分类关键词更重要一些

我看到有个人跑了96%的准确率,但我不理解,链接如下

Transformers-based NLP Model (3) | Kaggle

他的数据集多了一个文件,但那个文件我在kaggle上没看到,就下面这张图第一行

他的数据集是这样的,我不理解从哪里来的,挺奇怪,还有些别的得等我转修pytorch才能看得懂

标签:nlp,keras,kaggle,82.531%,train,test,import,csv,推文
From: https://blog.csdn.net/m0_73542617/article/details/139627601

相关文章

  • 动手学深度学习4.10 实战Kaggle比赛:预测房价-笔记&练习(PyTorch)
    以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。本节课程地址:实战Kaggle比赛:预测房价_哔哩哔哩_bilibili本节教材地址:4.10.实战Kaggle比赛:预测房价—动手学深度学习2.0.0documentation(d2l.ai)本节开源代......
  • kaggle竞赛实战8——其他方案之XGBOOST及NLP特征优化
    之前都用的集成算法,发现差异不大,考虑在特征优化上提升数据质量,用NLP算法优化id列有两种方法,分别是countervector和TF-IDF,前者就是词频,后者由TF(词频)和IDF(反文档词频)两部分组成,具体理论部分可参考推荐算法课程学习笔记2:文本特征提取基础_countervector-CSDN博客这篇文章fromsk......
  • kaggle竞赛实战6——方案优化之交叉验证
    特征选择一共有两种方法:filter和wrapper,前者根据指标(如相关系数),后者通过模型(如随机森林)筛选超参数搜索也有三种方法——网格搜索和TPE搜索、贝叶斯优化器搜索等,后两者可以进行一定程度的先验计算,并在实际搜索中不断调整先验判断。在完成上述过程后,还要用交叉验证来看超参数选......
  • kaggle竞赛系列基于图像对水稻分类代码案例
    目录依赖环境代码导入依赖包定义数据集路径:创建训练集、验证集和测试集的文件夹:代码的作用:设置新的数据集路径与类别名称代码的作用:定义数据预处理和增强变换:代码的作用:定义数据集评估划分与batch大小代码的作用:可视化代码的作用: 评估可视化代码的作用:网络结......
  • 绘唐23AI工具阿祖小说推文软件
    绘唐23AI工具阿祖小说推文软件激活授权方式:https://qvfbz6lhqnd.feishu.cn/wiki/CcaewIWnSiAFgokOwLycwi0Encf《寻找爱情的旅程》今天是我生命中的第1000个日子,也是我决定开始一段新的旅程的日子。我决定离开我熟悉的城市,去寻找真正的爱情。我是一个平凡的女孩,长着一头乌......
  • kaggle竞赛实战3
    接前文,本文主要做以下几件事:1、把前面处理完的几个表拼成一个大表2、做特征衍生(把离散特征和连续特征两两组合得出)#In[89]:#开始拼接表transaction=pd.concat([new_transaction,history_transaction],axis=0,ignore_index=True)#最后一个参数表示产生新的索引#......
  • 智影AI故事转视频创作神器!快速开启AI绘画小说推文之旅
    1.前言1.1生成内容形式    生成内容形式主要包含三种,PGC(ProfessionallyGeneratedContent)、UGC(UserGeneratedContent)、AIGC(ArtificiallyIntelligentGeneratedContent)。也可以简单理解为生成内容形式的三个发展阶段。PGC专业生成内容    专业生成内容是由专......
  • kaggle竞赛实战2
    接上一篇,本篇针对merchant以及transaction数据集进行预处理,包括缺失值、inf值处理以及object类型数据的独热编码转化,完成后详细代码如下:#In[5]:importosimportnumpyasnpimportpandasaspd#In[6]:pd.read_excel('d:/Data_Dictionary.xlsx',header=2,sheet_nam......
  • 基于Kaggle学习MONAI(三)2D-Segmentation例程代码详解1
    1简介         MONAI网站提供了2D分类/分割、3D分类/分割等例程代码如下图所示,通过学习例程代码,初学者能够尽快掌握MONAI框架,但是由于开源框架软件版本更新较快、各模块功能难以协调等原因,这些例程往往无法在Kaggle平台直接运行。本文对MONAI官网第二个例程,即2D分割......
  • Kaggle自然语言处理入门 推特灾难文本分类 Natural Language Processing with Disaste
    和新闻按照标题分类差不多,用的朴素贝叶斯#导入必要的包importrandomimportsysfromsklearnimportmodel_selectionfromsklearn.naive_bayesimportMultinomialNBimportjoblibimportre,stringimportpandasaspdimportnumpyasnpdeftext_to_words(file_path)......