🌈🌈🌈机器学习 实战系列 总目录
本篇文章的代码运行界面均在Pycharm中进行
本篇文章配套的代码资源已经上传
机器学习实战-系列教程1:线性回归入门教程
机器学习实战-系列教程2:线性回归1
机器学习实战-系列教程3:线性回归2
6、数据预处理
6.1 归一化函数
def normalize(features):features_normalized = np.copy(features).astype(float)features_mean = np.mean(features, 0)features_deviation = np.std(features, 0)if features.shape[0] > 1:features_normalized -= features_meanfeatures_deviation[features_deviation == 0] = 1features_normalized /= features_deviationreturn features_normalized, features_mean, features_deviation
- 深度复制传进来的原始数据features,转换为float格式
- 返回原始数据的均值
- 返回原始数据的标准差
- 判断features是否只有一个数字
- 原始数据减去均值
- 判断标准差是否为0,如果为0 则改为1(防止分母出现为0的情况)
- 原始数据减去均值的结果再除以标准差
- 返回处理结果、均值、标准差
6.2 数据预处理函数
def prepare_for_training(data, polynomial_degree=0, sinusoid_degree=0, normalize_data=True):num_examples = data.shape[0]data_processed = np.copy(data)features_mean = 0features_deviation = 0data_normalized = data_processedif normalize_data:(data_normalized, features_mean, features_deviation ) = normalize(data_processed)data_processed = data_normalizedif sinusoid_degree > 0:sinusoids = generate_sinusoids(data_normalized, sinusoid_degree)data_processed = np.concatenate((data_processed, sinusoids), axis=1)if polynomial_degree > 0:polynomials = generate_polynomials(data_normalized, polynomial_degree, normalize_data)data_processed = np.concatenate((data_processed, polynomials), axis=1)data_processed = np.hstack((np.ones((num_examples, 1)), data_processed))return data_processed, features_mean, features_deviation
- 计算有多少个数
- 深度复制原始数据
- 1
- 1
- 1
- 1
- 1
- 1
- 原始数据拼接了一列1
🌈🌈🌈机器学习 实战系列 总目录
本篇文章的代码运行界面均在Pycharm中进行
本篇文章配套的代码资源已经上传
机器学习实战-系列教程1:线性回归入门教程
机器学习实战-系列教程2:线性回归1
机器学习实战-系列教程3:线性回归2