机器学习基础 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

预处理数据

为了便于后续训练,需要对读取到的数据进行处理。影响房价的数据的范围都不一致,这些数据都不在一个数量级上,徜若不分青红皂白的进行训练,很容易导致数值大的数据对结果影响极大,从而不能平衡的体现出各个数据的重要性。因此需要通过数学方法,依据方差、平均值等因素,把各类数据放缩到一个相同的范围内,使其影响力所占权重相近。

from sklearn import datasets;
from sklearn.svm import SVR;
from sklearn.cross_validation import train_test_split;
from sklearn.preprocessing import StandardScaler;    #用于数据预处理的数据放缩函数
from numpy import *;

house_dataset = datasets.load_boston()
house_data = house_dataset.data;
house_price = house_dataset.target;
x_train,x_test,y_train,y_test=train_test_split(house_data,house_price,test_size=0.2);
#StandardScaler是数据放缩的其中一种方案,即f(x)=(x-平均值)/标准差
scaler = StandardScaler();
#在数据模型建立时,只能使用训练组数据,因此使用训练组数据的标准差进行标准化
scaler.fit(x_train);
#对训练组和测试组的输入数据进行标准化,即f(训练组或测试组数据)=(训练组或测试组数据-训练组或测试组平均值)/训练组标准差
x_train = scaler.transform(x_train);
x_test = scaler.transform(x_test);