您的位置:首页 > 数据库

SQL与数据挖掘(—)

2015-11-29 18:29 218 查看
在整个数据挖掘的过程中sql的作用是十分重要的,虽然没有那些机器学习算法高大上,但是没有sql就很难得到符合输入模型的数据格式的数据。而sql的作用也大多体现在数据的预处理,以及一些简单的特征提取方面,当然也可以基于统计知识做一些统计分析操作来提高模型的准确率。

1、数据导入

一般做数据挖掘的都需要吧数据导入数据库,(处理数据量比较小的情况下除外)这样方便程序去读写数据。常见的导入方法有2种:新手可以用mysql直接用命令或者是借助navicat导入数据;有一定编程基础的可以写一个小程序进行本地的文件的读取,然后根据文件中的数据格式写入到数据库,这里面涉及到程序链接数据库的内容。前者简单粗暴,但是当数据量非常大的时候,导入速度回比较慢,而且有时候会发生数据丢失的情况。后者虽然麻烦一点,但是导入速度还是很快的,尤其是借助python,数据也不容易丢失。当然了无论用哪一种方式,都要保证数据的编码格式是一致的。

参考样例:http://blog.csdn.net/a1b2c3d4123456/article/details/47729545

2、数据清洗

数据导入到数据库之后,一般情况下的数据都是很原始的数据,存在着很多的噪声数据,比如作文本分词要处理掉标点符号和乱码等问题。有时候需要处理掉一些垃圾数据,这时候可以使用sql的模糊查询功能进行查找,然后删除。模糊查询一般是用like和%配合处理。

例如:
selec * from table_a where name like '%abc%'


用like处理掉特殊符号是一个非常虐心的事情,这个时候还是需要借助于程序连接数据库然后进行筛选,之后在写入到数据库。

like使用参考:http://blog.knowsky.com/203085.htm

pyrhon清洗数据,参考样例:http://blog.csdn.net/a1b2c3d4123456/article/details/47910649

3、特征提取

在提取输入模型所需数据格式的过程中,可以借助sql一些函数和功能来提取。常见的功能操作有求和、求均值、中位数、聚合操作、切割字段、条件查询、简单排序、数据合并、数据删除、去重复、求文本长度等。

求和: `select name,sum(income) from table-a group by name‘;

均值:
select name,avg(income) from table-a group by name


中位数:
select name,mid(income) from table-a group by name


切割字段:`select name, substring(income,5,4) from table-a ;

substring 用法参考:http://www.1keydata.com/cn/sql/sql-substring.php

条件查询:
select * from table-a where age>=10


数据合并:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P


去重复:
select distinct(id) from table_a;


求文本长度:
SELECT Region_Name, Length (Region_Name) FROM Geography;


格式转换:
SELECT CAST('12' AS int) from table_a


UPDATE mars_tianchi_user_actions SET gmt_create=FROM_UNIXTIME(gmt_create)


cast参考:http://www.cnblogs.com/kissdodog/p/3165944.html

还有很多基本的操作,在此不一一列举了,增、删、改、查是必须会的。

参考:http://blog.csdn.net/a1b2c3d4123456/article/details/47679481

http://www.w3school.com.cn/sql/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql 数据挖掘