数据预处理matlab代码
时间: 2023-08-30 17:04:51 浏览: 70
以下是一些常见的数据预处理步骤的 MATLAB 代码示例:
1. 数据清洗
% 删除异常值
data(data > upper_threshold) = NaN;
data(data < lower_threshold) = NaN;
% 填充缺失值
data = fillmissing(data, 'linear'); % 使用线性插值填充缺失值
% 平滑噪声
smoothed_data = smoothdata(data, 'sgolay', window_size); % 使用 Savitzky-Golay 平滑滤波器平滑数据
2. 特征选择
% 过滤法
correlation_matrix = corr(data); % 计算特征之间的相关系数矩阵
selected_features = correlation_matrix > threshold; % 选择相关系数大于阈值的特征
% 包装法
model = fitlm(data, labels); % 使用线性回归模型拟合数据
selected_features = sequentialfs(@(x) loss(model, x), data, 'cv', k); % 使用交叉验证选择特征
% 嵌入法
model = fitrlinear(data, labels); % 使用线性回归模型拟合数据
selected_features = lasso(model, 'CV', k); % 使用 LASSO 回归选择特征
3. 特征缩放
% 最大最小值缩放
scaled_data = rescale(data, new_min, new_max);
% 标准化
scaled_data = zscore(data);
% 正则化
scaled_data = normalize(data);
4. 特征编码
% 独热编码
encoded_data = onehotencode(categorical(data));
% 标签编码
encoded_data = grp2idx(categorical(data));
% 哈希编码
encoded_data = double(data);
5. 数据平衡
% 随机过采样
balanced_data = datasample(data, num_samples, 'Replace', true);
% SMOTE
balanced_data = SMOTE(data, labels);
% 欠采样
balanced_data = undersample(data, labels);
以上代码示例仅为参考,具体的实现方式和参数设置可能需要根据数据集和任务的不同进行调整。