学习目标
学习机器先从数据预处理开始,主要步骤有以下几步:
- 导入依赖库numpy和pandas
- 导入数据表Data.csv
- 处理丢失数据NaN
- 使用
sklearn.preprocessing
的LabelEncoder进行字符串数据化 - 使用
sklearn.module_selection
库将数据集按照8:2分离成测试集和训练集 - 使用
sklearn.preprocessing
的StandardScalar方法缩放特性
源代码
原文所在[位置]([https://github.com/MLEveryday/100-Days-Of-ML-Code/blob/master/Code/Day%201_Data_Preprocessing.py](https://github.com/MLEveryday/100-Days-Of-ML-Code/blob/master/Code/Day 1_Data_Preprocessing.py))
#Day 1: Data Prepocessing
#Step 1: Importing the libraries
import numpy as np
import pandas as pd
#Step 2: Importing dataset
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[ : , :-1].values
Y = dataset.iloc[ : , 3].values
print("Step 2: Importing dataset")
print("X")
print(X)
print("Y")
print(Y)
#Step 3: Handling the missing data
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("---------------------")
print("Step 3: Handling the missing data")
print("step2")
print("X")
print(X)
#Step 4: Encoding categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])
#Creating a dummy variable
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)
print("---------------------")
print("Step 4: Encoding categorical data")
print("X")
print(X)
print("Y")
print(Y)
#Step 5: Splitting the datasets into training sets and Test sets
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)
print("---------------------")
print("Step 5: Splitting the datasets into training sets and Test sets")
print("X_train")
print(X_train)
print("X_test")
print(X_test)
print("Y_train")
print(Y_train)
print("Y_test")
print(Y_test)
#Step 6: Feature Scaling
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)
print("---------------------")
print("Step 6: Feature Scaling")
print("X_train")
print(X_train)
print("X_test")
print(X_test)
遇到的问题
- 英文版使用的是
cross_validation
库在新版框架中无法使用,sklearn库v0.20将train_test_split
方法移到module_selection
中。 - python没有指定编码方式,修改注释为中文无法正常运行。