数据挖掘 (1) 基础篇

主要使用库

numpy:提供数组支持,以及相应高效的处理函数
scipy:提供矩阵支持,以及矩阵相关的数值计算模块
matplotlib:强大的数据可视化工具,作图库
pandas:强大、灵活的数据分析和搜索工具
StateModels:统计建模和计量经济学,包括描述统计、统计模型估计和推断
Scikit-Learn:支持回归、分类、聚类等强大的机器学习库
Keras:深度学习库,用于建立神经网络以及深度学习模型
Gensim:用来做文本主题模型的库,文本挖掘可能用到
图片处理用Pillow  视频处理OpenCV  高精度运算GMPY2

基础代码

综述

from functools import reduce
import math
import numpy as np  # 提供数组支持,以及相应高效的处理函数

import scipy as sci  # 提供矩阵支持,以及矩阵相关的数值计算模块
from scipy.optimize import fsolve  # 导入求解方程组函数
from scipy import integrate  # 导入积分函数
# 最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、
# 常微分方程求解、其他科学与工程中常用的计算

import matplotlib.pyplot as plt  # 强大的数据可视化工具,作图库

# Panel Data和Data Analysis 为金融数据分析工具而开发
# 支持类似SQL的数据增、删、改、查,并且带有丰富的数据处理函数,支持时间序列分析功能
# 支持灵活处理缺失数据等
# 需要安装pip install pandas; xlrd(读)和xlwt(写)库支持Excel的读写
# pip install xlrd ; pip install xlwt
# Series 序列,类似一维数组 DataFrame 二维表格,类似二维数组,每一列都是Series
import pandas as pd  # 强大、灵活的数据分析和搜索工具

# import StateModels  # 统计建模和计量经济学,包括描述统计、统计模型估计和推断
from statsmodels.tsa.stattools import adfuller as ADF  # 导入ADF检验

# 与机器学习相关的库,提供了完善的机器学习工具箱,包括数据预处理、分类、回归、聚类、预测、模型分析等
# 依赖于Numpy、Scipy和Matplotlib  pip install scikit-learn
# Scikit-Learn  # 支持回归、分类、聚类等强大的机器学习库
from sklearn.linear_model import LinearRegression  # 导入线性回归模型
# Keras 深度学习库,用于建立神经网络以及深度学习模型
# Gensim  用来做文本主题模型的库,文本挖掘可能用到

# 图片处理用Pillow  视频处理OpenCV  高精度运算GMPY2

基础部分

d = {'today': 20, 'tomorrow': 30}
e = dict([['today', 20], ['tomorrow', 30]])

# set集合
s = {1, 2, 3, 4}

def function():
    b = map(lambda x: x + 2, a)  # 将函数逐一应用到map,逐一遍历
    b = list(b)

    b = filter(lambda x: x > 5 and x < 8, range(10))  # 过滤
    print(list(b))
    b = [i for i in range(10) if i > 5 and i < 8]
    print(b)

    n = 4  # 1*2*3*4
    result = reduce(lambda x, y: x * y, range(1, n + 1))  # 递归
    print(result)


if __name__ == '__main__':
    a = [1, 2, 3]
    b = [i+2 for i in a]
    print(b)

numpy 数组计算

def numpy_function():
    a = np.array([2, 0, 1, 5])
    print(a)  # 输出数组
    print(a[:3])  # 引用前三个数字(切片)
    print(a.min())  # 输出a中最小值
    a.sort()  # 将a的元素从小到达排序,此操作直接修改a,因此a为(0, 1, 2, 5)
    b = np.array([[1, 2, 3], [4, 5, 6]])  # 创建二维数组
    print(b*b)  # 输出数组的平方阵,即[[1,4,9],[16,25,36]]

def math_function():
    math.sin(1)
    math.exp(1)
    result = math.pi
    print(result)

scipy 矩阵计算

# 定义被积函数
def g(x):
    # sqrt(1-x^2)
    return (1-x**2)**0.5

# 定义要求解的方程组
def f_solve_function(x):
    # 求解2x1-x2^2=1, x1^2-x2=2
    x1 = x[0]
    x2 = x[1]
    # 求解方程的根,非线性方程通常会有多个解,需要设置解的大致初始值(取值范围)
    # 这样方程在初始值附近按梯度下降进行求解,可得到局部解
    return [2*x1-x2**2-1, x1**2-x2-2]  # 方程组要写出f(x)=0的形式

Matplotlib作图

# Matplotlib作图的基本代码
def matplotlib_function():
    # np.linspace() 用于在线性空间中以均匀步长生成数字序列 单独的序列生成器
    # numpy.arange() 生成序列
    x = np.linspace(0, 10, 1000)  # 作图的变量 自变量  0~10 1000个点
    y = np.sin(x) + 1  # 因变量y
    z = np.cos(x**2) + 1  # 因变量z
    plt.figure(figsize=(8, 4))  # 设置图像大小
    plt.plot(x, y, label='$\sin x+1$', color='red', linewidth=2)  # 作图,设置标签、线条颜色、线条带线啊哦
    plt.plot(x, z, 'b--', label='$\cos x^2+1$')  # 作图,设置标签,线条类型
    plt.xlabel('Time(s)')  # x轴名称
    plt.ylabel('Volt')  # y轴名称
    plt.title('A Simple Example')  # 标题
    plt.ylim(0, 2.2)  # 显示的y轴范围
    plt.legend()  # 显示图例
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 这两句用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
    plt.show()

Pandas Panel Data和Data Analysis 数据分析工具

# 数据的读取、处理和探索
def pandas_function():
    # DataFrame相当于多个带有同样Index的Series组合(本质是Series容器)
    # 每个Series都带有唯一的表头,用来标识不同的Series
    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)

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

    # 读取文件,注意文件的存储路径不能带有中文,否则读取可能出错
    pd.read_excel('data.xls')  # 读取Excel文件,创建DataFrame
    pd.read_csv('data.csv', encoding='utf-8')  # 读取文本格式的数据,一般用encoding指定编码

Scikit-Learn 机器学习相关库

# 创建一个机器学习模型
def sklearn_function():
    model = LinearRegression()  # 建立线性回归模型
    print(model)
    # model.fit()  训练模型,对于监督模型来说是fit(X, y), 对于非监督模型是fit(X)
    # 监督模型提供结构
    # model.predict(X_new):预测新样本
    # model.predict_proba(X_new):预测概率,仅对某些模型有用(比如LR)
    # model.score():得分越高,fit越好
    # 非监督模型提供接口
    # model.transform():从数据中学到新的‘基空间’
    # model.fit_transform():从数据中学到新的基并将这个数据按照这组‘基’转换

# 数据的统计建模分析,使得python有了R语言的味道
# 支持StatsModels与Pandas
def stats_model_function():
    result = np.random.rand(100)  # 返回的结果有ADF值、p值等
    print(result)
from sklearn import datasets
from sklearn import svm  # 导入SVM模型

# 安德森鸢尾花卉数据集、手写图像数据集等
# 150个鸢尾花的一些尺寸的观测值:萼片长度、宽度、花瓣长度、宽度
def main():
    iris = datasets.load_iris()  # 加载数据集
    print(iris.data.shape)  # 查看数据大小
    # 此处报错ConvergenceWarning,需要填入最大迭代10000次
    clf = svm.LinearSVC(max_iter=10000)  # 建立线性SVM分类器
    clf.fit(iris.data, iris.target)  # 用数据训练模型
    clf.predict([[5.0, 3.6, 1.3, 0.25]])  # 训练好模型后,输入新的数据进行预测
    clf.coef_  # 查看训练好模型的参数


if __name__ == '__main__':
    main()

 Keras库 神经网络搭建

# Keras库搭建神经网络,基于Theano的强大深度学习库
# 利用Keras不仅可以搭建普通的神经网络,还可以搭建各种深度学习模型
# 如自编码器、循环神经网络、递归神经网络、卷积神经网络等
# 基于Theano的,速度相当快

# Keras简化搭建各种神经网络模型的步骤,允许普通用户轻松搭建并求解具有几百个,输入节点的深层神经网络
# from keras.model import Sequential
# from keras.layers.core import Dense, Dropout, Activation
# from keras.optimizers import SGD

Gensim语言处理

# Gensim用来处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等
# import gensim, logging

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值