数据分割
-
训练集
- 训练集是用于训练机器学习模型的数据集。模型通过学习训练集中的示例来识别模式和关系。
- 训练集通常包含特征(输入变量)和目标(输出变量)。
-
测试集
- 测试集是用于评估模型性能的数据集。在模型训练完成后,使用测试集来检验模型的泛化能力,即模型在未见过的数据上的表现。
- 测试集通常不参与模型的训练过程,以避免过拟合。
-
验证集
验证集是可选的,用于在训练过程中调整模型参数,如选择模型结构、调整超参数等。它帮助我们选择最佳的模型配置,而不会影响最终测试集上的性能评估。
处理数据重要流程
- 先导入各种需要的库
- 将压缩的数据文件解压
- 将测试集和训练集文件连接在一块儿
- 进行数据清洗:1.可判断与结果无关的数据可删除
2.数据中的无效数据进行删除或更改、
3.根据数据之间的联系划分出离散数据和连续数据
处理连续数据的onehot函数
OneHot
编码是一种常用的数据预处理技术,特别是在处理分类特征时。
-
定义:
OneHot
编码是一种将分类变量转换为机器学习算法可以更好处理的格式的方法。它将每个类别标签转换为一个二进制向量。
-
目的:
- 将分类数据转换为数值型数据,使得算法能够处理它们。这是因为大多数机器学习算法只能处理数值型数据。
-
原理:
- 对于一个具有N个唯一类别的变量,
OneHot
编码会生成N个二进制列。每个类别对应一个列,如果某个实例属于该类别,则对应的列值为1,否则为0。
- 对于一个具有N个唯一类别的变量,
-
实现:
- 在Python中,可以使用
pandas
库中的get_dummies
函数,或者在scikit-learn
中使用OneHotEncoder
来实现OneHot
编码。
- 在Python中,可以使用
-
应用:
- 主要用于处理分类特征,如性别、国家、颜色等。这些特征在原始形式下不能直接用于许多机器学习算法。
-
优点:
- 简单易实现。
- 可以处理任何类型的分类变量,包括有序和无序的类别。
-
缺点:
- 会显著增加数据的维度。如果一个特征有大量的类别,
OneHot
编码后会生成大量的列。 - 可能会引入大量的噪声,特别是当某些类别的样本非常少时。
- 会显著增加数据的维度。如果一个特征有大量的类别,
-
处理有序数据:
- 对于有序的分类数据(如教育水平、收入等级等),使用
OneHot
编码可能会丢失这些数据的顺序信息。在这种情况下,可能需要考虑其他编码方法,如标签编码(Label Encoding)。
- 对于有序的分类数据(如教育水平、收入等级等),使用
-
稀疏性:
OneHot
编码生成的向量通常是稀疏的,大多数元素都是0。这可以通过稀疏矩阵来有效存储。
-
在模型中的应用:
- 在训练模型时,
OneHot
编码后的数据可以直接输入到模型中,如决策树、随机森林、支持向量机等。
- 在训练模型时,
-
预处理步骤:
- 通常在数据清洗和特征工程阶段进行
OneHot
编码,作为数据预处理的一部分。
- 通常在数据清洗和特征工程阶段进行
数据拟合
通过走梯度的负方向并以恰当的步长来调整各个数据的权重,来拟合数据,得到更准确的预测结果。