项目实训个人周报3

在大模型训练中,数据集划分、数据增强和数据可视化是至关重要的步骤,确保模型训练的有效性、可靠性和可解释性。下面是对这三个方面的具体实现方法的详细说明。

数据集划分:合理划分训练、验证和测试集

  1. 比例划分:

    常用的划分比例是70%用于训练,15%用于验证,15%用于测试。具体比例可以根据数据集的规模和任务的需求进行调整。

  2. 随机划分:

    使用随机数生成器确保数据集划分的随机性,避免样本顺序导致的偏差。

  3. 分层抽样:

    在分类任务中,确保各类样本在训练、验证和测试集中的比例一致,可以使用分层抽样。

  4. 时间序列数据划分:

    在时间序列数据中,按照时间顺序划分数据,确保训练集早于验证集,验证集早于测试集。

这里我使用随机划分,使用sklearn.model_selection.train_test_split函数实现:

from sklearn.model_selection import train_test_split

train_data, test_data = train_test_split(data, test_size=0.3, random_state=42)
train_data, val_data = train_test_split(train_data, test_size=0.2, random_state=42)

数据增强:同义词替换、回译、随机删除

1.同义词替换

随机选择句子中的词,替换为其同义词。

这里我使用NLTK实现:

from nltk.corpus import wordnet

def synonym_replacement(text):
    words = text.split()
    new_words = words.copy()
    for i in range(len(words)):
        synonyms = wordnet.synsets(words[i])
        if synonyms:
            new_words[i] = synonyms[0].lemmas()[0].name()
    return ' '.join(new_words)

2.回译:

将文本翻译成另一种语言,再翻译回来,以生成新的文本。

我这里使用谷歌的翻译API(Google Translate API)实现:

from googletrans import Translator

def back_translation(text, src='en', dest='de'):
    translator = Translator()
    translated = translator.translate(text, src=src, dest=dest).text
    back_translated = translator.translate(translated, src=dest, dest=src).text
    return back_translated

3.随机删除:

随机删除句子中的一些词,生成新的变体。

实现如下:

import random

def random_deletion(text, p=0.1):
    words = text.split()
    if len(words) == 1:
        return text
    new_words = [word for word in words if random.uniform(0, 1) > p]
    return ' '.join(new_words)

数据可视化:文本数据可视化

词频统计:使用词云(Word Cloud)展示高频词。

from wordcloud import WordCloud
import matplotlib.pyplot as plt

def plot_wordcloud(text):
    wordcloud = WordCloud(width=800, height=400).generate(text)
    plt.figure(figsize=(10, 5))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.show()
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值