对于学习机器学习算法来说,肯定会涉及到数据的处理,因此一开始,对数据的预处理进行学习

对于数据的预处理,大概有如下几步:

步骤1 —— 导入所需库

导入处理数据所需要的python库,有如下两个库是非常重要的两个库,每次必导入

  • numpy

该库包含数学函数功能的库

  • pandas

该库用于导入和管理数据集

步骤2 —— 导入数据集

数据集通常以 .csv 格式进行保存,csv文件是以普通文本的形式存储列表数据,文件中每一行是一个数据记录。

对于csv文件,使用pandas模块中的 read_cvs 方法进行读取。

步骤3 —— 处理丢失数据

由于实际获取到的数据很少是同一类型的,由于各种原因会导致数据丢失,因此需要处理,以便不会降低机器学习模型的性能。

我们可以使用整列数据中的均值或者中值来替换丢失的数据, python中使用sklearn.preprocessing中的imputer类来完成该任务。

步骤4 —— 编码分类数据

分类数据通常包括的分类类型是标签值,例如是”Yes”或”No”, 而不是数值,例如0或1。

由于标签值是不能用在机器学习模型的数学等式中的,因此,需要把标签值转换为数值。

python中使用sklearn.preprocessing库中的LabelEncoder类可以完成该任务。

步骤5 —— 划分数据为训练集和测试集

机器学习中,需要把数据集划分为两部分,用于训练机器学习模式的称之为 训练集, 用于测试训练出来的模型性能的称之为 测试集。通常按80/20比例把需数据集划分为训练集和测试集。

python中使用sklearn.crossvalidation库中的train_test_split()方法进行划分。

步骤6 —— 特征缩放

大部分的机器学习算法在计算过程中使用两个数据点之间的欧几里德距离。如果数据集中的特征值的变化范围比较大的话, 大的数值比小的数值在计算距离上会导致不同的权重。因此需要进行特征标准化或Z-score正规化。

python中可以使用sklearn.preprocessing库中的StandardScalar

代码实现

# -*- coding: utf-8 -*-
"""
Author: wxer
"""
# step 1 - import the libraries
import numpy as np
import pandas as pd
from sklearn.preprocessing import Imputer
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler # step 2 - import dataset
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[: 大专栏  机器学习 —— 数据预处理, 3].values # step 3 - handing the missing data
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
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0]) 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
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0) # step 6 - feature scaling sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)

参考

  1. Data PreProcessing

  2. 三种常用数据标准化方法

机器学习 —— 数据预处理的更多相关文章

  1. [机器学习]-[数据预处理]-中心化 缩放 KNN(二)

    上次我们使用精度评估得到的成绩是 61%,成绩并不理想,再使 recall 和 f1 看下成绩如何? 首先我们先了解一下 召回率和 f1. 真实结果 预测结果 预测结果   正例 反例 正例 TP 真 ...

  2. python大战机器学习——数据预处理

    数据预处理的常用流程: 1)去除唯一属性 2)处理缺失值 3)属性编码 4)数据标准化.正则化 5)特征选择 6)主成分分析 1.去除唯一属性 如id属性,是唯一属性,直接去除就好 2.处理缺失值 ( ...

  3. 吴裕雄 python 机器学习——数据预处理过滤式特征选取SelectPercentile模型

    from sklearn.feature_selection import SelectPercentile,f_classif #数据预处理过滤式特征选取SelectPercentile模型 def ...

  4. 吴裕雄 python 机器学习——数据预处理过滤式特征选取VarianceThreshold模型

    from sklearn.feature_selection import VarianceThreshold #数据预处理过滤式特征选取VarianceThreshold模型 def test_Va ...

  5. 吴裕雄 python 机器学习——数据预处理正则化Normalizer模型

    from sklearn.preprocessing import Normalizer #数据预处理正则化Normalizer模型 def test_Normalizer(): X=[[1,2,3, ...

  6. 吴裕雄 python 机器学习——数据预处理标准化MaxAbsScaler模型

    from sklearn.preprocessing import MaxAbsScaler #数据预处理标准化MaxAbsScaler模型 def test_MaxAbsScaler(): X=[[ ...

  7. 吴裕雄 python 机器学习——数据预处理标准化StandardScaler模型

    from sklearn.preprocessing import StandardScaler #数据预处理标准化StandardScaler模型 def test_StandardScaler() ...

  8. 吴裕雄 python 机器学习——数据预处理标准化MinMaxScaler模型

    from sklearn.preprocessing import MinMaxScaler #数据预处理标准化MinMaxScaler模型 def test_MinMaxScaler(): X=[[ ...

  9. 吴裕雄 python 机器学习——数据预处理二元化OneHotEncoder模型

    from sklearn.preprocessing import OneHotEncoder #数据预处理二元化OneHotEncoder模型 def test_OneHotEncoder(): X ...

随机推荐

  1. C++ lock_guard 互斥锁

    概述根据对象的析构函数自动调用的原理,c++11推出了std::lock_guard自动释放锁,其原理是:声明一个局部的lock_guard对象,在其构造函数中进行加锁,在其析构函数中进行解锁.最终的 ...

  2. 共享出行疯狂并购背后,打造全交通链条才能让Uber们更快乐

    一直以来,携程.滴滴.摩拜等与出行相关的企业总是会因各种负面问题而饱受诟病.但不能否认的是它们极大地提升了出行便利性,让人们的出行更有效率,也更加方便.而与此同时,Uber.Lyft.滴滴等共享打车企 ...

  3. [ZJOI2019]麻将(DP+有限状态自动机)

    首先只需要考虑每种牌出现的张数即可,然后判断一副牌是否能胡,可以DP一下,令f[i][j][k][0/1]表示到了第i位,用j次i-1,i,i+1和k次i,i+1,i+2,是否出现对子然后最大的面子数 ...

  4. Angular(二)

    Angular开发者指南(二)概念概述   template(模板):带有附加标记的模板HTMLdirectives(指令):使用自定义属性和元素扩展HTMLmodel(模型):用户在视图中显示的数据 ...

  5. Laravel 操作指令

    php artisan migrate —path=database/migrations/v1 更新表数据 php artisan make:migration create_channels_ta ...

  6. [LC] 270. Closest Binary Search Tree Value

    Given a non-empty binary search tree and a target value, find the value in the BST that is closest t ...

  7. 用 Apache Derby 进行 ODBC 编程

    用 Apache Derby 进行 ODBC 编程 https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0409kar ...

  8. 九成AI企业亏损,人工智能商业落地为何这么难?

    自1956年"人工智能"一词诞生于"达特茅斯会议"后,前者就始终在不断向前推进.虽然中间经历了不少低谷和寒潮,但总算挺了过来.60多年后,人工智能在当下呈现突飞 ...

  9. VS制作dll、def文件的使用、dll加入工程使用

    1.VS新建工程,在选项的时候,选择dll和空项目,保持干净的dll库: 创建完以后,添加头文件以及源文件. 2.将外部模块使用的接口导出: (1)函数导出: __declspec(dllexport ...

  10. 通俗易懂JSONP讲解

    原文地址:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html JSON的格式或者叫规则: JSON能够 ...