SQL与数据挖掘(—)
2015-11-29 18:29
218 查看
在整个数据挖掘的过程中sql的作用是十分重要的,虽然没有那些机器学习算法高大上,但是没有sql就很难得到符合输入模型的数据格式的数据。而sql的作用也大多体现在数据的预处理,以及一些简单的特征提取方面,当然也可以基于统计知识做一些统计分析操作来提高模型的准确率。
参考样例:http://blog.csdn.net/a1b2c3d4123456/article/details/47729545
例如:
用like处理掉特殊符号是一个非常虐心的事情,这个时候还是需要借助于程序连接数据库然后进行筛选,之后在写入到数据库。
like使用参考:http://blog.knowsky.com/203085.htm
pyrhon清洗数据,参考样例:http://blog.csdn.net/a1b2c3d4123456/article/details/47910649
求和: `select name,sum(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
条件查询:
数据合并:
去重复:
求文本长度:
格式转换:
cast参考:http://www.cnblogs.com/kissdodog/p/3165944.html
还有很多基本的操作,在此不一一列举了,增、删、改、查是必须会的。
参考:http://blog.csdn.net/a1b2c3d4123456/article/details/47679481
http://www.w3school.com.cn/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中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器
- SQL Server 2000向SQL Server 2008 R2推送数据图文教程