#import library
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd 

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

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

#Encoding categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
lableEncoder_X = LabelEncoder()
X[:,0]=lableEncoder_X.fit_transform(X[:,0])

oneHotEncoder_X=OneHotEncoder(categorical_features=[0])
X=oneHotEncoder_X.fit_transform(X).toarray()

lableEncoder_y = LabelEncoder()
y=lableEncoder_y.fit_transform(y)

#Split data for training and testing
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
from sklearn.preprocessing import StandardScaler
sc_X=StandardScaler()
X_train=sc_X.fit_transform(X_train)
X_test=sc_X.transform(X_test)
