python数据分析与数据挖掘库介绍

一、数据预处理
由于采集数据中常包含许多含有噪声、不完整、甚至不一致的数据,对数据挖掘所涉及的数据对象必须进行预处理。主要包括筛选数据、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、数据违约等。
二、常用的数据挖掘工具
1.SAS Enterprise Miner
2.IBM SPSS Moldelre
3.SQL Sever
4.Python
在这里主要选用python做主要的分析工具,python本身作为数据分析工具的能力并不强,需要安装一些第三方库扩展库来增强他的能力。用到的库主要有,Numpy、Scipy、Pandas、Matplotib、Scikit_Learn、Keras和Gensim等,下面对这些库做一个简单的介绍:
(1)Numpy:提供数组支持,以及相应的高效的处理函数
(2)Scipy:提供矩阵支持,以及矩阵相关的数值计算模块
(3)Pandas:强大灵活的数据分析和探索工具
(4)Matplotib:强大的数据可视化工具,做图库
(5)Scikit_Learn:支持回归、分类、聚类等强大的机器学习库
(6)Keras:深度学习库*(暂不介绍)
(7)Gensim:用作文本主题模型的库,文本挖掘可能会用到*(暂不介绍)
三、库的介绍
1.Numpy
python没有提供数组功能。虽然列表可以完成基本的数组功能,但他不是真正的数组,而且在数据量很大时,使用python列表功能就会慢的让人难以接受。为此,Numpy提供了真正的数组功能,以及对数组进行快速处理的函数。Numpy还有很多更高级的扩展库的依赖库。Numpy内置函数处理数据的速度是C语言级别的,因此在写程序的时候尽可能多的用他的内置函数,避免出现效率瓶颈的现象(尤其是涉及循环的问题)。
安装:

pip install numpy

Numpy的基本操作:

# coding=utf8
import pandas as pa
s=pd.series([1,2,3],index=['a','b','b'])#创建一个序列s
d=pd.DataFrame([1,2,3],[4,5,6],columns=['a','b','c'])#创建一个表
print(d.head())#预览前五行数据
print(d.describe())#数据基本统计量
pd.read_csv('ali.csv',encoding='utf8')

参考链接:
http://www.numpy.org/
http://reverland.org/python/2012/08/22/numpy/

2.Scipy
Numpy提供多维数组功能,但他只是一般的数组,并不是矩阵。例如,当两个数组相乘时,只对应元素元素相乘,而不是矩阵乘法。Scipy提供了真正的矩阵,以及大量基于矩阵运算的对象与函数。Scipy包含的功能有最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算,显然,这些功能都是挖掘与建模必须的。
安装:

pip install Scipy

Scipy求解非线性方程组和数值积分:

#coding=utf8
求解的线性方程组为:2x1-x2^2=1,x1^2-x2=2
from Scipy.optimize import fsolve #导入求解方程组的函数

def f(x):
  x1=x[0]
  x2=x[1]
  return [2 * x1 - x2 ** 2 - 1, x1 ** 2 - x2 - 2]
result=fsolve(f,[1,1]) #输入初始值(1,1)
print(result)  

#数值积分
from Scipy import integrata #导入积分函数

def g(x):#定义积分函数
  return (1 - x ** 2) ** 0.5
pi_2,err=integrata.quad(g,-1,1)
print(pi_2*2)
参考链接:
http://www.scipy.org/
http://reverland.org/python/2012/08/24/scipy/

3.Matplotlib
对于python来说,Matplotlib是最著名的绘图库,他主要用于二维绘图,当然,他也可以进行简单的三维绘图。他不但提供了一整套和Matlab相似但更为丰富的命令,让我们可以非常快捷的用python可视化数据。
安装:

pip install python-matplotlib

Matplotlib绘图的基本命令:

import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,10,100)#作图的变量、自变量
y=np.sin(x)+1#应变量y
z=np.cos(x**2)+1#应变量z

plt.figure(figsize=(8,4))#设置图像大小
plt.plot(x,y,lable='$sin(x)+1$',color='red',linewidth=2)# 作图、设置标签、线条颜色、线条大小
plt.plot(x,z,'b--',lable='$cos(x**2)+1$',color='blue')# 作图、设置标签、线条类型
plt.xlable('Time(s)')
plt.ylable('volt')
plt.title('A Simple Example')
plt.ylim(0,2.2)
plt.legend()#显示图例
plt.show()

函数图像
给大家提供一个Matplotlib画廊:

http://matplotlib.org/gallery.html

4.Pandas
Pandas的功能非常强大,支持类似于SQL的增、删、查、改,并且带有非常丰富的数据处理函数;支持时间序列分析功能;支持灵活处理缺失数据等。
安装:

pip install pandas as pd
pip install xlrd 
pip insta xlwt #为python添加excel读/写的功能

Pandas的简单例子:

#coding=utf8
import pandas as pd
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])  # 创建一个序列s
d = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=['a', 'b', 'c'])  # 创建一个表
d2 = pd.DataFrame(s)

print(d.head())  # 预览前五行数据
print(d.describe())  # 数据基本统计量

pd.read_csv('athlete_events.csv',encoding = 'utf-8')

5.Scikit-Learn
Scikit-Learn是python下强大的机器学习工具包,他提供了完善的机器学习工具包,包括数据预处理、分类、回归、聚类、预测和模型分析等。
安装:

pip install Scikit-Learn

简单的机器学习模型:

#coding=utf8
from sklearn.linear_model import LinearRegression #导入线性回归模型
#一个很简单的机器学习模型
model=LinearRegression()
print(model)

简单的例子:

# coding=utf8
from sklearn.linear_model import LinearRegression  # 导入线性回归模型

# 一个很简单的机器学习模型
model = LinearRegression()  # 建立线性回归模型
print(model)

from sklearn import datasets #导入数据集
iris=datasets.load_iris()#加载数据集
print(iris.data.shape) #查看数据集大小
from sklearn import svm #导入svm模型
clf=svm.LinearSVC() #建立线性svm分类器
clf.fit(iris.data,iris.target) #用数据进行训练
clf.predict([[5.0,3.6,1.3,0.25]])#训练好模型后,输入新的数据进行预测
print(clf.coef_) #查看参数

(1)所有模型提供的接口有:
model.fit() :训练模型,对于监督模型来说是fit(X,y),对于非监督模型是fit(X)
(2)监督模型提供的接口有:
model.predict(X_new): 预测新样本
model.predict_proba(X_new) :预测概率,仅对某些模型有用,比如LR
model.score(): 得分越高,fit越好
(3)非监督模型提供的接口有:
model.transform(): 从数据中学到新的“基空间”
model.fit_transform(): 从数据中学到新的基并将这个数据按照这组“基”进行转换

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值