怎么看网站点击量,外贸如何推广,wordpress 如何添加关键词,wordpress分类加密1. 前言 数据清洗与结构化数据在数据分析和机器学习项目中扮演着至关重要的角色。随着大数据时代的到来#xff0c;数据的质量、准确性和可用性成为决定项目成功与否的关键因素。
数据清洗提高数据质量#xff0c;保证数据集的一致性#xff1b;促进数据分析与挖掘#xf…1. 前言 数据清洗与结构化数据在数据分析和机器学习项目中扮演着至关重要的角色。随着大数据时代的到来数据的质量、准确性和可用性成为决定项目成功与否的关键因素。
数据清洗提高数据质量保证数据集的一致性促进数据分析与挖掘进一步提高模型质量与准确性减少错误决策的风险。 2. 数据集的删补
2.1 数据集的删除操作
train_Data.drop(CapitalLoss,axis1,inplaceTrue) #对于某一列进行操作 2.2 数据集的修改操作
train[0] #获取数据的第0列
train.iloc[0,1] #获取数据的第0行第1列
在DataFrame中默认索引是列所以如列表一般[]是列索隐
想要获取数据库中某一特定数据使用loc或者iloc(行列索引)[行列] train_Data.iloc[0,1] 3 #针对特定数据进行修改
与赋值一样获取特定数据后可以直接赋新值进行替代。 train_Data[0].replace(2,3,inplaceTrue) #将第0行中为2的数据替换为3
train_Data.replace( ?,pd.NaT,inplaceTrue) #数据集中为字符替换为缺失值
也可以使用replace函数进行针对性替代。 2.3 数据集的增添操作
train_Data[6] 7 #新增一列这列数据为7
直接在原数据集中进行添加。
df1 pd.DataFrame({A:[1,2],B:[2,3]})
df2 pd.DataFrame({A:[3,4],B:[4,5]})
df3 pd.concat([df1,df2],axis0,ignore_indexTrue) #行对齐
df4 pd.concat([df1,df2],axis1) #列对齐
concat函数可以将多个表格进行拼接。 3. 规范化标签
3.1 标签编码
最简单粗暴的方法通过对每一列标签进行判断逐个对标签进行数值化
Data[sex][Data[sex] Male] 1
from sklearn.preprocessing import LabelEncoder
le LabelEncoder() #初始化
le.fit_transform(train_Data) #对这一列数据进行标签数值化对于调用的LabelEncoder模型我们需要将其初始化之后再使用。
for column in train_Data.columns: #遍历数据集的每一列if train_Data[column].dtype object:train_Data[column] le.fit_transform(train_Data[column])
通过循环的方式将每一列标签中数值类型为object的标签进行数值化
上述代码展示了将标签进行规范化LabelEncoder将标签转化为从0-n的数值标签互不重复。 但标签编码也有其局限性
标签编码将分类数据转换为数字数据但它为每个数据类别分配一个唯一的数字从0开始。这可能导致在数据集的模型训练期间产生优先级问题。具有高值的标签可以被认为具有比具有较低值的标签高的优先级。 3.2 独热编码
3.2.1 使用pandas库
df1 pd.DataFrame({Str:[A,A,B,B,C]})
df1.get_dummies(df1,columns[Str]) 在回归分类聚类等机器学习算法中特征之间距离的计算或相似度的计算是非常重要的而我们常用的距离或相似度的计算都是在欧式空间的相似度计算计算余弦相似性基于的就是欧式空间。
而我们使用one-hot编码将离散特征的取值扩展到了欧式空间离散特征的某个取值就对应欧式空间的某个点。 通俗而言独热编码将各属性平等化每一个属性权重优先级等都一样。 3.2.2 使用Sklearn库
data pd.DataFrame({Str:[A,B,A,C]})form sklearn.preprocessing import OneHotEncoder
enc OneHotEncoder()
enc.fit(data) #将数据库data中的数据编码
enc.transform([[A]]).toarray() #将字符A根据原有规则进行转码
#由于OneHotEncoder返回的是稀疏矩阵所以需要使用toarray函数将矩阵转换enc.fit_transform(data).toarray() 根据打印结果字符A代表编码[1,0,0]字符B代表编码[0,1,0]C代表编码为[0,0,1] 在这里补充一下稀疏矩阵的知识
import numpy as np
from scipy.sparse import csr_matrix # 创建一个稀疏矩阵
data np.array([1, 2, 3, 4, 5, 6])
row_ind np.array([0, 0, 1, 2, 2, 2])
col_ind np.array([0, 2, 2, 0, 1, 2])
sparse_matrix csr_matrix((data, (row_ind, col_ind)), shape(3, 3))
print(sparse_matrix)dense_matrix sparse_matrix.toarray() # 打印转换后的 NumPy 数组
print(\nDense Matrix:)
print(dense_matrix) 稀疏矩阵是一种用于存储和操作大型矩阵的方法这些矩阵中大部分元素都是零因此使用专门的数据结构来存储非零元素及其位置可以大大节省内存和计算资源。简单来讲稀疏矩阵将矩阵中为0的部分省略例如上述括号代表数字在矩阵中的位置。
通过toarray函数将矩阵进行还原。 独热编码优缺点
优点为处理离散型特征提供了方法在一定程度上扩充了特征属性。
缺点当特征的类别很多时特征空间会变得非常大在这种情况下一般可以用PCA来减少维度。 如果离散特征的取值之间没有大小意义时可以使用独热编码例如学习成绩优良及格。 4. 数据集的标签还原
Data[sex][Data[sex] 1] Male #选中列标签后新增一个中括号[]里面加入判定条件
# 如果你需要查看原始标签到整数的映射
print(le.classes_) # 输出: [bird cat dog]注意这不是按字母顺序的 # 如果你需要将整数转换回原始标签
labels_decoded le.inverse_transform(labels_encoded)
print(labels_decoded) # 输出: [dog cat bird dog cat]
如果通过使用LabelEncoder将标签数值化也可以使用同样的方式将标签还原 . 5. 参考资料
机器学习数据预处理之独热编码One-Hot详解-CSDN博客
Python中的标签编码和独热编码示例详解_python_脚本之家
Adult数据集分析及四种模型实现-CSDN博客