数据挖掘学习笔记-第二讲【回顾python的数据结构和基本语法】

数据挖掘学习笔记

如果你对 Python有一定了解,那么可以直接跳过这部分内容。
Python 是一门面向对象、直译式编程语言, 编写简单、上手迅速,开源扩展包十分丰富,所以在数据挖掘的前沿科研和工业领域都广受欢迎,有着瑞士军刀般的价值。利用 Python,可以非常方便地开展各种领域的数据挖掘工作。



一、Python 的介绍

Python 的优、缺点

1. 优点

简单易学:Python 的代码比较简洁、语法比较规范, 甚至有点像伪代码,很容易上手。如果你有其他编程语言基础的话,那么学习 Python 就会变得很快了。如果你没有学过,也不要担心,市面上关于 Python 入门的课程非常多,足够满足你的需求。

开源:因为用户可以免费使用,所以不管是在工作中,还是在学习中,使用 Python 的人群都很多,这使得各种更新包层出不穷。

可移植性好:在不同的平台都可以运行,不管是 MacOS、Windows 还是 Linux,唯一需要注意的是运行环境的配置。比如 Python 中各种包的依赖关系,如果处理不好将导致程序无法运行,要注意避免。下一课时我会介绍一种常用的包管理办法。

可扩展性:Python 拥有丰富的第三方库,不管是文件操作、网络编程、各种数据库,还是 3D 图形编程都可以运用到。

2. 缺点

!通常来说 Python 的缺点就 1 个, 为了使语言更加简便易懂,Python 在底层做了很多工作,所以其运行速度比 C、Java 等要慢很多。 如果非要说还有什么缺点,我认为,由于各种扩展库太庞大,导致配置这些相关包有些困难,比如不同版本的包可能存在不兼容的情况,甚至是 Python 语言本身,在从 2.x 版本升级到 3.x 版本后,很多语句和功能都发生了变化,无法跨版本运行。

知道了 Python 的特点之后,我们来了解一下它的数据类型,这对我们编写代码有很大的帮助。


二、Python 支持的数据类型


支持的数据类型

在这里插入图片描述

1. 列表(list)

列表可以理解为是一个有序可重复的数组,主要用于按顺序存放我们的数据。

首先,来举个例子,下面是一个为列表赋值的语句:

list=['one','two',3,4,5]

通过该语句生成了一个列表,即 list,里面有 5 个元素,但它们的类型不一样,前 2 个是字符串,后 3 个是数字。
简单来说有三点:
1.数据量大:数据的生产、收集和存储也越来越方便,海量数据因此产生
2.维度多:比如点外卖事件涉及的维度就有:浏览饭店的菜品(形式有文字、图片或语言、视频等)、浏览时间、下单价格、交易处理、分配配送员及 GPS 信息、完成订单后的评价等。
3.问题复杂:编写一段代码来区分某图片中是否有一只猫咪,那要考虑的问题就太多了,使用传统的方法很难解决,而这恰恰是数据挖掘所擅长的


三、数据挖掘有什么用处

1.分类问题

什么是分类
一张图片,电脑判断男人还是女人,一封邮件,电脑判断为垃圾信息还是又用信息?

2.聚类问题

聚类与分类不同,聚类的类别预先是不清楚的,我们的目标就是要去发现这些类别。聚类的算法比较适合一些不确定的类别场景。
比如:比如我们出去玩,捡了一大堆不同的树叶回来,你不知道这些树叶是从什么树上掉落的,但是你可以根据它们的大小、形状、纹路、边缘等特征给树叶进行划分,最后得到了三个较小的树叶堆,每一堆树叶都属于同一个种类

3.回归问题

使用回归的方法预测北京某个房子的总价(y),假设总价只跟房子的面积(x)有关,那么我们构建的方程式就是 ax+b=y。如何根据已知 x 和 y 的值解出 a 和 b 就是回归问题要解决的。回归方法是通过构建一个模型去拟合已知的数据(自变量),然后预测因变量结果。

4.关联问题

常见的啤酒与尿布的故事


四、数据挖掘怎么做

应用最多的 CRISP-DM(Cross-industry Standard Process for Data Mining,跨行业数据挖掘标准流程)方法论

在这里插入图片描述

1.业务理解(Business Understanding)

业务理解就是需求,弄明白问题所需求什么?训练模型用来预测垃圾邮件,那么你得弄明白,什么是垃圾邮件,他的特征有哪些,对于垃圾邮件的定义是什么,还有就是你目前的资源、局限、设想、存在风险等等问题。

2.数据理解(Data Understanding)

数据理解阶段始于数据的收集工作,但我认为重点是在业务理解的基础上,对我们所掌握的数据要有一个清晰、明确的认识,了解有哪些数据、哪些数据可能对目标有影响、哪些可能是冗余数据、哪些数据存在不足或缺失,等等。

需要注意的是,数据理解和业务理解是相辅相成的,因此你在制定数据挖掘计划的时候,不能只是单纯地谈需求,这也是大多数初入门的数据挖掘工程师容易忽略的。数据理解得不好,很可能会导致你对业务需求的错误评估,从而影响后续进度甚至是结果。

3.数据准备(Data Preparation)

你需要找销售要销售数据,找采购要采购数据,找财务要各种收入、支出数据,然后整理所有需要用到的数据,想办法补全那些缺失的数据,计算各种统计值,等等。数据准备就是基于原始数据,去构建数据挖掘模型所需的数据集的所有工作,包括数据收集、数据清洗、数据补全、数据整合、数据转换、特征提取等一系列动作。

事实上,在大多数的数据挖掘项目中,数据准备是最困难、最艰巨的一步。如果你的数据足够干净和完整,那么在建模和评估阶段所付出的精力就越少,甚至都不必去使用什么复杂的模型就可以得到足够好的效果,所以这个阶段也是十分重要的。

4.构建模型(Modeling)

也可以叫作训练模型,在这一阶段,我们会把准备好的数据喂给算法,所以这个阶段重点解决的是技术方面的问题,会选用各种各样的算法模型来处理数据,让模型学习数据的规律 ,并产出模型用于后续的工作。

对于同一个数据挖掘的问题类型,可以有多种方法选择使用。如果有多重技术要使用,那么在这一任务中,对于每一个要使用的技术要分别对待。一些建模方法对数据的形式有具体的要求,比如 SVM 算法只能输入数值型的数据,等等 。 因此,在这一阶段,重新回到数据准备阶段执行某些任务有时是非常必要的

5.评估模型(Evaluation)

在模型评估阶段,我们已经建立了一个或多个高质量的模型。但是模型的效果如何,能否满足我们的业务需求,就需要使用各种评估手段、评估指标甚至是让业务人员一起参与进来,彻底地评估模型,回顾在构建模型过程中所执行的每一个步骤,以确保这些模型达到了目标。在评估之后会有两种情况,一种是评估通过,进入到上线部署阶段;另一种是评估不通过,那么就要反过来再进行迭代更新了。

6.模型部署(Deployment)

整理了数据,研究了算法模型,并通过了多方评估,终于到了部署阶段。此时可能还要解决一些实际的问题,比如长期运行的模型是否有足够的机器来支撑,数据量以及并发程度会不会造成我们部署的服务出现问题,等等。但是,关于数据挖掘的生命周期可能还远未结束,关于一些特殊情况的出现可能仍然无法处理,以及在后续的进程中,随着新数据的生产以及变化,我们的模型仍然会发生一些变化。所以部署是一个挖掘项目的结束,也是一个数据挖掘项目的开始。


五、总结

我们主要来认识一下“数据挖掘”,让它不再是一个抽象的名词,从“它解决什么问题”和“怎么做”的角度建立了全面而具体的认识。后面的篇幅,我也将围绕这些内容进行展开和扩充讲解。
数据挖掘与数据分析,业务目标相同,但是工作上有些区别。一般数据挖掘更倾向于技术层面,而数据分析倾向于业务结果方面,数据挖掘和算法工程师更接近一点。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wency(王斯-CUEB)

我不是要饭的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值