这是github一个开源项目,作者是Avik Jain,内容是从机器学习的基础概念起步,逐层递进,很适合初学者。截至到现在,已经有近6000的star。我不自量力的翻译一下。本人英语很渣,借助了翻译工具,但还是不能很好的切合文意。写博客仅仅是为了记录自己的学习历程,翻译不到位的话还请多多见谅,不足之处请指出,不喜勿喷。
这里附上原项目地址:https://github.com/Avik-Jain/100-Days-Of-ML-Code,这里可以下载到项目所需数据集。
如有侵权请告知,我将第一时间删除。
转发请注明出处
第一天 数据处理
这里是作者给的知识图谱,下面给出的基本是直译,有很多专业词汇翻译不到位,知识所限。
Step 1 : importing the required libraries
第一步:导入必须的包
these two are essential libraries which we will import every time.
我们每次都要导入这两个库 //这里是指NumPyh和Pandas
Numpy is a libray which contains Mathematical function
Numpy库包含了数学处理函数
pandas is the library used to import and manage the data sets
pandas 是用来导入和管理数据集的库
step 2 :importing the data set
第二步:导入数据集
data sets are generally available in .csv format
数据集通常以.csv的格式提供
a CSV file stores tabular data in plaintext
csv 文件以明文存储表格数据
each line of the file is a data record
文件的每一行都是一个数据记录
we use the read_csv method of the pandas library to read a local csv file as a dataframe
我们使用pandas库的read_csv方法读取本地CSV文件作为数据文件
then we make separate Matrix and Vector of independent and dependent variables from the dataframe
然后从数据文件中分别生成自变量和因变量的矩阵和向量
step3 :handing the missing data
第三步: 处理丢失数据
the data we get is rarely homogeneous
我们得到的数据很少是完整的
data can be missing due to various reasons and needs to be handled so that it does not reduce the performance of our machine learning model
由于各种原因,数据可能会丢失,需要进行处理,从而不会降低我们的机器学习模型的性能。
We can replace the missing data by the Median of the entire column
我们可以用整列的中值代替缺失数据
we use imputer class of sklearn.preprocessing for this taske
我们用 sklearn.preprocessing 下的inputer 类来完成这个任务
step 4:encoding categorical data
第四步:编码分类的数据
categorical data are variables that contain lable values rather than numeric values.
分类数据包含标签值的变量而不是数值
the number of possible values is often limited to a fixed set.
可能值的数目通常限于固定集。
Example values such as “yes” and “No” cannot be used in mathematical equations of the model so we need to encode these variables into numbers
诸如“是”和“否”等示例值不能用于模型的数学方程,所以我们需要将这些变量编码成数字。
To achieve this we import LableEncoder class from sklearn.preprocessing library.
为了实现这一点,我们从sklearn.preprocessing库导入LableEncoder 类。
Step 5:splotting the dataset into test set and training set
第五步:把数据集分为测试集和训练集
we make two partitions of dataset one for training the model called training set and other for testing the performance of the trained model called test set
我们把数据集分为两部分,一部分用于训练模型,被成为训练集,另一部分用于 检测模型的表现,被称为测试集。
the split is generally 80/20
经常以8:2划分
we importing train_test_split() method of sklearn.crossvalidation library
我们导入 sklearn.crossvalidation库的train_test_split()方法。
Step 6 :feature scaling
第六步:特征缩放
most of machine learning algorithms use the Euclidean distance between two data points in their computations,features highly varying in magnitudes, units and range pose problems.
大多数机器学习算法在计算中使用两个数据点之间的欧氏距离,特征在幅度、单位和范围上很大的变化,这引起了问题。
High magnitudes features will weigh more in the distance calculations than features with low magnitudes.
高数值特征在距离计算中的权重将大于低数值特征。
Done by feature standardization or Z-score normalization
通过特征标准化或Z分数归一化来完成
StandardScalar of sklearn.preprocessing is imported
导入sklearn.preprocessing 库中的StandardScala
代码如下
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
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])
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)
Step 5: Splitting the datasets into training sets and Test sets
数据集分割为训练集和测试集
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)
Step 6: Feature Scaling 特征缩放
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)
杂谈:
NumPy的介绍:https://baike.baidu.com/item/numpy/5678437?fr=aladdin
Pandas的介绍:https://baike.baidu.com/item/pandas/17209606
sklearn是机器学习中一个常用的python第三方模块,网址:http://scikit-learn.org/stable/index.html ,里面对一些常用的机器学习方法进行了封装,在进行机器学习任务时,并不需要每个人都实现所有的算法,只需要简单的调用sklearn里的模块就可以实现大多数机器学习任务。
如果你是新手,可以去廖雪峰老师的学习网站学习Python,在这里学习李宏毅教授的机器学习课程。
转载自原文链接, 如需删除请联系管理员。
原文链接:100-days-ML----100天搞定机器学习 (1),转载请注明来源!