数据挖掘实训周报1

数据挖掘实训周报1

本阶段工作内容

一、了解甜橙金融杯大数据竞赛并报名,下载数据。

报名官网

二、配置本机环境。

因为使用的是Mac系统,所以配置环境相对简单,使用的是python3,以及使用pip3下载实训所需要用到的各种包。使用以下命令即可

sudo pip3 install numpy scipy pandas scikit-learn statsmodels matplotlib xgboost jupyter

数据挖掘实训周报1
数据挖掘实训周报1

三、学习数据挖掘涉及的主要python包。

1. numpy

学习链接1

学习链接2

numpy提供了大量的库函数和操作,主要用于对多维数组执行计算,以及对图像的处理和其他数学运算。

基本操作
  • 导入numpy。

import numpy as np

  • 声明数组/矩阵,注意,数组下标从0开始,和Matlab从1开始不一样。

array = np.array([1,2,3,4])

array = np.array([1,2,3,4],[1,2,3,4])

array = np.arange(10) 从0到9的数组。

array = np.array(0, 10, 2) 从0开始,每个元素间隔2,直到10(不包括10)

array = np.linspace(0, 10, 5) 0到10的5个等分数据,包括0和10。

  • 创建全0数组,全1数组,随机数组,长度为10。

array = np.zeros((10))

array = np.ones((10))

array = np.random.random((10))%注意是两个random,范围为0到1.

  • 创建全0矩阵,全1矩阵,随机矩阵,长度为10*10。

array = np.zeros((10,10))

array = np.ones((10,10))

array = np.random.random((10,10))

  • 输出第1行数据

array[0,:]

  • 矩阵±*/操作

array1 +-*/ array2,这是对元素进行操作,即元素是一对一进行±*/的。

  • 指数

array**2,这是对元素进行操作,即元素是一对一操作。

  • 矩阵乘法

array1.dot(array2)

  • 矩阵重塑,将一维矩阵转化为4*5的矩阵。

array = np.arange(20);array = array.reshape(4,5)

  • 矩阵信息

array.size 矩阵的元素个数

array.shape 矩阵的大小

进阶操作

  • 条件判断
  • 三木运算
  • 统计运算amax,amin,mean,std(方差)。其中参数axis=0为列,axis=1为行。

np.amax(array, axis=0)

  • 矩阵拼接

    • 垂直拼接np.vstack(array1,array2)
    • 水平拼接np.hstack(array1,array2)
  • 读取数据

    • np.genfromtxt('./xx.csv', delimiter=' '),第一个参数为路径,第二个参数为分隔符
    • 如果数值据有无法识别的值出现,会以nan显示,nan相当于np.nan,为float类型.
  • 更多见学习资料链接

2. pandas

学习链接1

学习链接2

pandas 是基于numpy的一个工具包,主要是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

import numpy as np

import pandas as pd

数据结构
  • 序列Series,类似于numpy中的一维数组,可以通过索引获取数据

    • Series = pd.Series(array)

    • series = {'a':1,'b':2,'c':3}

    • series = pd.Series(array, index),index为索引,array为value。与第一句区别为第一句索引默认0…1…n-1

    • 通过DataFrame的行列来创建序列。

  • 数据框DataFrame,数据以表格的形式存储,有行索引和列索引

    series = {'one':{'a':1,'b':2,'c':3,'d':4},two':{'a':5,'b':6,'c':7,'d':8},three':{'a':9,'b':10,'c':11,'d':12}}

    dataframe = pd.DataFrame(series)

    此时`dataframe就是一个行索引为a,b,c,d。列索引为one, two,three的4*3表格。

3. scipy

学习链接1

学习链接2

scipy是基于numpy上的,它提供了许多的操作numpy的数组的函数,是一款方便、易于使用、专为科学和工程设计的python工具包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等。

scipy各子模块,表格来自博客https://blog.****.net/q583501947/article/details/76735870

模块名 功能
scipy.cluster 向量量化
scipy.constants 数学常量
scipy.fftpack 快速傅里叶变换
scipy.integrate 积分
scipy.interpolate 插值
scipy.io 数据输入输出
scipy.linalg 线性代数
scipy.ndimage N维图像
scipy.odr 正交距离回归
scipy.optimize 优化算法
scipy.signal 信号处理
scipy.sparse 稀疏矩阵
scipy.spatial 空间数据结构和算法
scipy.special 特殊数学函数
scipy.stats 统计函数

4. scikit-learn

学习链接1

学习链接2

官方文档

SciKit-learn的简称是SKlearn,是一个python库,基于 Numpy 与 SciPy 两大著名工具包,专门用于机器学习的模块,包含了分类,回归,无监督,数据降维,数据预处理等常见的大部分机器学习方法。

官方结构图:
数据挖掘实训周报1

5. statsmodels

学习链接1

statsmodels是一个Python库,用于拟合多种统计模型,执行统计测试以及数据探索和可视化。statsmodels包含更多的“经典”频率学派统计方法,包含的一些模型如下:

  • 线性模型,广义线性模型和鲁棒线性模型
  • 线性混合效应模型
  • 方差分析(ANOVA)方法
  • 时间序列过程和状态空间模型
  • 广义的矩量法

6. matplotlib

官方文档

学习链接

matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。因为之前经常使用的是Matlab画图,差距不大,所以只是简单看了一遍。

7. xgboost

学习链接1

学习链接2

学习链接3

8. jupyter

学习资料1

学习资料2

Jupyter Notebooks 是一款开源的网络应用,我们可以将其用于创建和共享代码与文档。其提供了一个环境,你无需离开这个环境,就可以在其中编写你的代码、运行代码、查看输出、可视化数据并查看结果。

安装jupyter需要将pip3更新到最新版本。

pip3 install --upgrade pip

使用命令jupyter notebook,Jupyter Notebooks 会在默认浏览器打开,地址是:http://localhost:8888/tree

以下为成功打开tiancheng_base.ipynb文件

数据挖掘实训周报1
数据挖掘实训周报1