项目实训个人周报6
项目实训个人周报6
琴生去除过短或者过长训练数据
在机器学习中,去除过短或过长的训练数据通常是为了提高模型的性能和稳定性。以下是具体的原因:
- 质量控制
过短的文本:
- 可能包含太少的信息,无法提供足够的上下文。
- 可能是噪音或无用的内容,如单个字符或单词。
过长的文本:
- 可能包含冗余信息或噪音。
- 处理起来资源消耗较大,增加计算开销。
- 计算效率
过长的文本:
- 需要更多的计算资源和时间。
- 可能导致内存不足或训练时间过长。
- 模型训练稳定性
过短的文本:
- 可能导致模型过拟合,无法泛化到更长或更复杂的句子。
- 模型可能学不到有用的特征。
过长的文本:
- 可能导致模型在训练时遇到梯度消失或爆炸的问题。
- 增加模型的复杂性,可能需要更复杂的架构来处理。
- 数据均衡性
去除过短或过长的文本有助于确保训练数据的长度分布更加均衡,避免模型对特定长度的文本过度拟合。
- 一致性和可解释性
保持数据长度在一个合理的范围内,可以提高模型预测结果的一致性和可解释性。
下面是我去除过短或者过长训练数据的代码
1 | import pandas as pd |
- 读取CSV文件:使用
pd.read_csv()
函数读取名为data.csv
的文件 - 过滤数据
- 使用Pandas的字符串方法
.str.len()
来计算每一行中question
和answer
列的长度。 - 使用布尔索引过滤出满足所有条件的行:
- 问题列的长度至少为5个字符且不超过50个字符。
- 答案列的长度至少为50个字符且不超过512个字符。
- 使用Pandas的字符串方法
- 保存过滤后的数据:使用
to_csv()
方法将过滤后的数据保存到一个名为filtered_data.csv
的新文件中。设置index=False
参数来避免写入行索引到文件。
删除相似的问题或者相似的答案
在大模型训练中,删除相似的问题或相似的答案有以下几个主要原因:
- 减少数据冗余
相似的问题和答案:
- 会导致数据集中存在大量重复信息。
- 增加数据量但不提供新的有价值的信息。
通过删除相似的样本,可以减少数据冗余,使模型更专注于学习多样化和有代表性的信息。
- 提高训练效率
减少冗余数据:
- 可以显著减少训练时间和计算资源的消耗。
- 使模型训练更高效,因为训练时不需要反复处理相似的信息。
- 防止过拟合
相似的问题和答案:
- 可能导致模型对某些特定模式过拟合。
- 模型可能会记住这些重复的样本,而不是学会如何处理更多样化的数据。
删除相似的样本有助于提高模型的泛化能力,使其在面对新数据时表现更好。
- 增强模型的多样性学习
多样化数据:
- 使模型能够学习到更广泛的模式和特征。
- 提高模型在不同情境下的表现能力。
删除相似的样本可以确保模型接触到更多样化的训练数据,从而提高模型的鲁棒性和应对不同情况的能力。
- 改善数据集质量
清理数据集:
- 可以去除那些重复或者几乎相同的问答对,提升数据集的整体质量。
- 有助于确保数据集中的每个样本都提供有价值的训练信息。
高质量的数据集有助于模型更有效地学习和推理。
下面是我的代码
1 | import pandas as pd |
相似度计算函数
- 使用
SequenceMatcher
函数比较两个字符串的相似度。这个函数返回一个介于0和1之间的数值,表示两个字符串的相似度百分比。
- 使用
读取CSV文件
- 使用
pd.read_csv()
读取CSV文件。
- 使用
初始化索引列表
- 使用一个集合
indices_to_drop
来存储需要删除的行索引。使用集合可以避免重复添加同一索引。
- 使用一个集合
双重循环比较每行
- 用双重循环遍历数据框,比较每一对问题和答案。
- 如果发现问题或答案的相似度超过80%,将较后的行索引添加到
indices_to_drop
集合中。
删除指定行
- 使用
DataFrame.drop
方法删除所有标记为删除的行。
- 使用
保存结果
- 使用
to_csv()
方法将处理后的数据保存到新的CSV文件filtered_data.csv
中,index=False
参数确保不保存行索引。
- 使用
这段代码将根据问题和答案的相似度过滤出唯一的行,是处理大量文本数据
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果