机器学习100天-Day1

基于github上的一个学习项目进行https://github.com/Avik-Jain/100-Days-Of-ML-Code

由浅入深,省去前期手工推导,练习中引入库来完成。

一般一天更新一次练习,我会将里面的英文引导翻译成中文。

完整代码:https://github.com/jwc19890114/-02-learning-file-100days/blob/master/01.ipynb

原文的英文说明

第一步:引入需要的库

练习主要使用的是numpy、pandas、sklearn这几个库,在之后我会进一步增加。

第二步:引入数据集

使用pandas中的read函数读取数据集。 在本例中使用的是excel数据集,也可以使用csv等。

import pandas as pd

data=pd.read_excel(r'地址')

data=pd.read_csv(r'地址')

之后我们会从dataframe中获取矩阵(Matrix)和向量(vector)的相关和不相关性

第三步:处理丢失数据

每一个数据集中都会出现丢失的数据,在这里使用sklearn.preprocessing中的Imputer进行处理,使用的是取平均值的方式(strategy=mean)。

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])

第四步:对数据进行编码

分类数据是变量(variables),它们包含标签值而非数字。可能的数值经常被限定在了一个固定集中,比如数据Yes和No就不能被引入到模型中,需要对这样的数据进行编码。在这里使用labelEncoder进行处理

from sklearn.preprocessing import LabelEncoder, OneHotEncoder

labelencoder_X=LabelEncoder()

labelencoder_Y=LabelEncoder()

X[:,0]=labelencoder_X.fit_transform(X[:,0])

onehotencoder=OneHotEncoder(categorical_features=[0])

X=onehotencoder.fit_transform(X).toarray()

Y=labelencoder_Y.fit_transform(Y)

第五步:将数据集划分为测试集和训练集

0.8和0.2的比例进行划分,使用train_test_split()

from sklearn.cross_validation import train_test_split

X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)

第六步:特征缩放

大多数机器学习算法使用两个数据点之间的欧几里得距离Euclidean distance进行计算,巨大的特征在距离计算中会有更高的权重,这样是不好的,需要进行特征缩放。使用特征标准化或是Z-score归一。调用sklearn.preprocessing.StandardScalar进行处理

from sklearn.preprocessing import StandardScaler

sc_X = StandardScaler()

X_train = sc_X.fit_transform(X_train)

X_test = sc_X.fit_transform(X_test)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181218A1A6T700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券