前言

机器学习是如今人工智能时代背景下一个重要的领域,它应用广泛,如推荐系统,文本分析,图像识别,语言翻译等等。要想学通这个大的领域不是一件容易的事情,这个“Python快速实战机器学习”系列,用Python代码实践机器学习里面的算法,旨在理论和实践同时进行,快速掌握知识。

本文概要

1、学会用pandas导入数据;

2、学会用matplotlib可视化数据;

3、学会用sklearn给标签编码。

4、学会用sklearn划分数据集。

5、学会用sklearn进行特征缩放。

导入数据

import pandas as pd
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',header=None)
df.tail()

我们使用pandas读取数据,然后通过pandas中的tail方法输出最后五行数据,看一下Iris数据集格式:

这是一个来自叫做“UCI Machine Learning Repository”数据集。UCI Machine Learning Repository:它是网络中最古老的数据集源之一,是寻找各种有趣数据集的第一选择。在这里,尽管数据集都是用户自行贡献的,但清洁程度仍然很高。此外,你可以直接从 UCI Machine Learning Repository 上下载数据,无需注册。

这个数据集是关于鸢尾花分类的问题,一个150个数据,第一列是编号,第二列到第五列是鸢尾花的各种参数,也叫做“特征(features)”是我们判断鸢尾花属于哪种的依据。最后一列就是鸢尾花的种类。

数据可视化

import numpy as np
import matplotlib.pyplot as plt
Y = df.iloc[0:100,4].values
X = df.iloc[0:100,[0,2]].values
plt.scatter(X[:50,0], X[:50,1], color='red', marker = 'o', label = 'setosa')
plt.scatter(X[50:100,0], X[50:100,1], color='blue', marker = 'x', label = 'versicolor')
plt.xlabel('petal length')
plt.ylabel('sepal length')
plt.legend(loc='upper left')
plt.show()

我们抽取出前100条样本,这正好是Setosa(前五十个数据)和Versicolor(后五十个数据)对应的样本,我们将Versicolor对应的数据作为类别1,Setosa对应的作为-1。对于特征,我们抽取出sepal length和petal length两维度特征,然后用散点图对数据进行可视化:

标签编码

from sklearn.preprocessing import LabelEncoder
labelencoder_Y = LabelEncoder()
Y =  labelencoder_Y.fit_transform(Y)

我们使用sklearn中的preprocessing模块中LabelEncoder函数给鸢尾花的种类Y编码,因为在编码之前,Y存储的是鸢尾花的名字,也就是字符串变量。我们无法用字符串变量进行数值计算,因此我们需要把它变成0,1,2这种格式的数据。大家可以打印编码后的Y来查看编码的效果。

划分数据

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)
print (X_train.shape)
print (X_test.shape)

我们使用sklearn中的切分数据集的模块,model_selection来完成训练集和测试集的划分。一般而言我们随机从整个数据集中找到80%的数据作为训练集,另外20%的数据作为测试集。一个更加严谨的办法是将整个数据集随机划分成五份,然后依次用其中的一份作为测试集,另外四份合并作为训练集,对算法运行五次,最后取五次的平均值作为最终的结果。这里我们只用一次,作为演示。大家可以看到我们打印了训练集和数据集的形状,的确按照八二分。

特征缩放

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)

由于我们的特征不止一个维度,每个维度之间没有同一个刻度,会导致两个维度之间的数据差距特别大。可能一个维度的数据是0.1,0.2这种小于1的数字;而另一个维度是1000,2000这种非常大的数字。因此,我们需要给特征缩放,让他们都在同一个尺度,方便后面进行模型计算。

python standardscaler_Python快速实战机器学习之数据预处理相关推荐

  1. 机器学习PAL数据预处理

    机器学习PAL数据预处理 本文介绍如何对原始数据进行数据预处理,得到模型训练集和模型预测集. 前提条件 完成数据准备,详情请参见准备数据. 操作步骤 登录PAI控制台. 在左侧导航栏,选择模型开发和训 ...

  2. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化

    R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理.构建词袋模型.构建xgboost文本分类模型.基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化 目录

  3. 机器学习之数据预处理——归一化,标准化

    机器学习之数据预处理--归一化,标准化 基础知识 1.什么是特征预处理 2.预处理方法 : 3.预处理API: 数据的标准化(normalization)和归一化 数据的标准化 数据归一化 1 把数变 ...

  4. 机器学习之数据预处理——数据清洗(缺失值、异常值和重复值的处理)

    机器学习之数据预处理--数据清洗缺失值.异常值和重复值的处理 基础知识 技术点总结 数据列缺失的处理方法 1.丢弃(缺失值处理) 1.生成一份随机数据 2.查看哪些值缺失 3.获得含有NA的列 4.获 ...

  5. 机器学习之数据预处理——特征编码(标签编码,独热编码)

    机器学习之数据预处理--特征编码 数据预处理--特征编码 离散数据的编码 标签编码 sklearn LabelEncoder(使用fit_transform函数) sklearn LabelEncod ...

  6. 深入浅出Python机器学习9——数据预处理、降维、特征提取及聚类

    数据预处理 使用 StandScaler 进行数据预处理 首先手工生成一些数据:        用make_blobs 函数时,指定了样本数量 n_samples 为 40,分类 centers 为 ...

  7. 机器学习中数据预处理方法

    在知乎上也看到了这个,不知道哪个是原创,这里粘上链接 https://zhuanlan.zhihu.com/p/51131210 前言 数据预处理的重要性? 熟悉数据挖掘和机器学习的小伙伴们都知道,数 ...

  8. 机器学习之数据预处理

    在sklearn之数据分析中总结了数据分析常用方法,接下来对数据预处理进行总结 当我们拿到数据集后一般需要进行以下步骤: (1)明确有数据集有多少特征,哪些是连续的,哪些是类别的 (2)检查有没有缺失 ...

  9. 负数如何归一化处理_机器学习之数据预处理

    第一节:前言 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已.由此可见,特征工程在机器学习中占有相当重要的地位. 特征工程:利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能 ...

最新文章

  1. 第一章:1.2.3 LTI系统研究方法与本章小结
  2. 如何判断网站是否启用HTTP2
  3. java在虚拟机下的安装_centos 虚拟机下安装 Java方法
  4. php实现mysql分表
  5. SQL 数据库远程备份 语句
  6. 一步一步写算法(之prim算法 下)
  7. 政策解读:《智能硬件产业创新发展专项行动(2016-2018年)》(下)
  8. java manager 如何使用_java – Android:如何使用AlarmManager
  9. Mysql数据库内连接INNER JOIN的使用
  10. 青龙面板2.8 Bot配置教程
  11. 图像预处理——对数变换
  12. 如何快速实现高并发短文检索
  13. java星星闪烁代码_css3实现星星闪烁效果
  14. 【图像处理】基于matlab自动报靶系统(重弹孔)
  15. STM32F4 RTC详解
  16. 免费好用的远程控制电脑软件推荐
  17. 悟空问答python反爬_悟_刘德华_高音质在线试听_悟歌词|歌曲下载_酷狗音乐
  18. Python爬虫||BeautifulSoup4库-以小猪短租为例
  19. 2015java基本笔试_搜狗2015校园招聘Java开发笔试
  20. python是一门面向_如何系统地自学一门Python 语言

热门文章

  1. 升级python以及安装anaconda
  2. How to include library manually into maven local repository?
  3. 进来,让BUG远离你!
  4. 5.6亿人没有存款、人均负债13万,大数据揭示负债累累的年轻人
  5. 一个程序员的一些想法(二)
  6. 几个小时后,我学数据库,找到一些代码
  7. 编写高性能 Web 应用程序的10个技巧
  8. 风生水起:Linux的突破口在中国?
  9. 亲密接触VC6.0编译器
  10. Python登录界面