100天机器学习算法-Day1: 数据预处理

机器学习界的网红程序员Avik-Jain 发起了一个100天机器学习的项目,英文原版在此: 英文原版

 网友提供的中文翻译版在此: 中文译版

我在跟随这个项目学习, 对代码中一些需要更新地方(由于版本更新造成)进行了修改, 并发布博客作为对自己的鼓励.

Day 1: Data Processing

# modified of code from 100-Days-of-ML-Code
# day 1 , data processing

# importing libraries
import numpy as np
import pandas as pd

# importing dataset
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 3].values

# handing 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('original X:\n', X)

# encoding categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
print('X after labelencoder')
print (X)
#createing a dummy variable
onehotencoder = OneHotEncoder(categorical_features =  [0])
X = onehotencoder.fit_transform(X).toarray()
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)
print('X after OneHotEncoder')
print(X)
print('Y after OneHotEncoder')
print(Y)
# splitting the dataset 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)

# feature scaling
# 均值方差归一化,通过删除平均值和缩放到单位方差来标准化特征,  标准分数计算如下: z = (x - u) / s
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)

print('X_train afterStandardScaler :\n', X_train)
print('X_test after StandardScaler:\n', X_test)
发布了12 篇原创文章 · 获赞 5 · 访问量 7460

猜你喜欢

转载自blog.csdn.net/redredxcar/article/details/104099663