机器学习1-数据预处理

数据预处理
第一步
导入我们需要的库:numpy:数学计算函数。pandas:导入和管理数据集。
第二步:导入数据集
通常数据集的格式是csv的。csv是以文本形式保存数据的。每一行是一条数据。
读取数据:使用pandas的read_csv方法读取本地csv为一个数据帧。然后从一个数据帧中制作自变量的因变量的矩阵和向量。

dataset = pd.read_csv('Data.csv')
##读取csv文件
X=dataset.iloc[:,:-1].values
##.iloc[行,列]
print(X)
y=dataset.iloc[:,3].values
print(y)

第三步:处理丢失数据
对于丢失的数据,我们采用的是用整列的平均值或中间值来替换丢失数据。
使用方法:用sklearn.preprocessing库中的Imputer类处理丢失数据。

from sklearn.preprocessing import Imputer
imputer=Imputer(missing_values = 'NaN',strategy='mean',axis=0)
imputer=imputer.fit(X[:,1:3])
X[:,1:3]=imputer.transform(X[:,1:3])
print(X[:,1:3])

第四步:解析分类数据
分类数据:含有标签值而不是数字值的变量。
取值范围通常固定。例如YES/NO不能用于模型的数学计算,所以需要将标签值解析为数字值。
实现:调用sklearn中的preprocessing库导入LabelEncoder类。

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])

第五步:拆分数据集为测试集合和训练集合
把训练数据分成两个,一个用来训练模型,一个用来做模型的测试,一般训练数据集的比例是8:2.
实现:调用sklearn.crossvalidation库中的train_test_split方法。

from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)

第六步:特征缩放
大多数模型算法使用两点间的欧式距离表示,但是此特征在幅度。单位和姿态问题上变化比较大。也就是说如何对特征进行标准化。
实现:导入sklearn.preprocessing库的StandardScalar类。

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)

猜你喜欢

转载自blog.csdn.net/qq_40605167/article/details/89261597