11.20

0x01. 随机变量的基本概念

随机变量是把样本空间映射到实数空间,通常样本空间中的样本点和随机事件都与实际问题联系比较紧密,如:抛硬币正反面,产品合格不合格,电视机寿命是多少年,炮弹打多远等等,这些问题在样本空间的范畴不能反应问题的本质。通过引入随机变量,把这些具体问题的随机事件用实数轴上的点来表示,这样既能方便的描述问题的本质,也能把微积分理论引入到随机现象的研究中来。

0x02. 离散型随机变量及其分布律

1. 离散型随机变量

若随机变量X取至多可列个值,则称X为离散型随机变量

2. 离散型随机变量分布律

设随机变量X可能的取值为$x_{k}(k=1,2,3,...)$记$$P\{X=x_{k}\} = p_{k}(k=1,2,3,...)$$为离散型随机变量的分布律。

3. 两点分布

4. 伯努利概型与二项分布

5. 泊松定理

6. 泊松分布与泊松流

0x03. 连续型随机变量及其密度函数

若随机变量的取值充满了一个连续的实数区间,如:产品使用寿命、设计弹着点的坐标、一个地区的年平均气温及年平均降水量等随机变量,这种取值无法通过离散型随机变量逐点描述的方式来表述概率特性,因此引入连续性随机变量。

定义

对于随机变量X,如果存在非负可积函数$f(x)$,使得对于任意实数$a,b(a<b)$有$$P\{a\lt X \le b\}=\int_{a}^{b}f(x)d_{x}$$则称X为连续型随机变量,称$f(x)$为概率密度函数(简称密度函数或密度).

11.21

连续型随机变量分布律

均匀分布

$X \sim U(a,b)$

密度函数:$$\begin{cases} \frac{1}{b-a}& \text{ if } a < x < b \\ 0 & \text{other } \end{cases}$$

指数分布

指数分布式用来描述寿命的一种概率分布 $X \sim Exp(\lambda)$ 密度函数: $$\begin{cases} \lambda e^{-\lambda x}& x > 0\\ 0 & x\le0 \end{cases} $$

伽马分布

正态分布

11.22

行列式

二元线性方程组与行列式

三阶行列式

11.23

行列式

高阶行列式

$$\sum(-1)^t a_{1}p_{1}a_{2}p_{2}...a_{n}p_{n}$$

其中t是逆序数,$p1,p2,...,pn$为1到n的全排列.

行列式的性质

一共六个性质,两个推论

行列式展开

1. 余子式,代数余子式
2. 行列式展开法则:行列式等于它的任意一行(列)的个元素与其代数余子式之和,即:
$$D=\sum_{j=1}^{n}a_{ij}A_{ij} $$

其中i代表任一行标 或: $$D=\sum_{i=1}^{n}a_{ij}A_{ij}$$ 其中j代表任一列标.

矩阵及其运算

线性方程组和矩阵

1. 线性方程组、矩阵定义
2. 线性变换、对角矩阵、单位矩阵、恒等变换

矩阵的运算

1. 矩阵加法
2. 数与矩阵相乘
3. 矩阵与矩阵相乘
4. 矩阵转置
5. 方阵的行列式

逆矩阵

11.24

矩阵及其运算

逆矩阵的应用

克拉默法则

矩阵分块法

11.25

矩阵的初等变换与线性方程组

矩阵的初等变换

矩阵的秩

线性方程组的解

11.26

向量的线性相关性

向量及其线性组合

向量的线性相关性

11.27

向量的线性相关性

向量组的秩

11.28

向量的线性相关性

线性方程组的解的结构

向量空间

11.29

相似矩阵及二次型

向量的内积、长度及正交性

方阵的特征值与特征向量

11.30

Numpy

ndarray对象

1. 创建
2. 存取元素
3. 多维数组
4. 结构数组
5. 内存结构

相似矩阵及二次型

相似矩阵

机器学习

模型评估与选择

1. 错误率、精度
2. 误差(训练误差、泛化误差)

评估方法

1. 数据划分:留出法、自助采样、交叉验证
2. 采样方法:分层采样、自助采样

12.1

机器学习

评估方法

1. 查准率
2. 查全率
3. F1

Numpy

预定义函数

广播

12.2

Numpy

常用函数

文件操作

Matplotlib

12.9

pandas


In [15]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 一维数据
s = pd.Series([1, 3, 5, np.nan, 6, 8])
s


Out[15]:
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

In [16]:
# 二维数据
dates = pd.date_range('2016-12-09', periods=6)
df1 = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
df1


Out[16]:
A B C D
2016-12-09 1.968651 -1.139141 -0.389745 -0.126086
2016-12-10 -0.360829 -0.232400 0.478658 0.957847
2016-12-11 1.885744 -0.709779 -0.358930 -0.239134
2016-12-12 0.494197 1.088236 -0.157116 -0.887710
2016-12-13 0.258558 -0.023414 -2.204672 -1.048449
2016-12-14 0.387750 -0.684570 0.786703 -0.400111

In [17]:
# Creating a DataFrame by passing a dict of objects that can be converted to series-like.
dic = {
        'A': 1,
        'B': pd.Timestamp('20161219'),
        'C': pd.Series(1, index=list(range(4)), dtype='float32'),
        'D': np.array([3]*4, dtype='int32'),
        'E': pd.Categorical(['test', 'train', 'test', 'train']),
        'F': 'foo'
    }
dic


Out[17]:
{'A': 1, 'B': Timestamp('2016-12-19 00:00:00'), 'C': 0    1.0
 1    1.0
 2    1.0
 3    1.0
 dtype: float32, 'D': array([3, 3, 3, 3], dtype=int32), 'E': [test, train, test, train]
 Categories (2, object): [test, train], 'F': 'foo'}

In [18]:
df2 = pd.DataFrame(dic)

In [19]:
df2.dtypes


Out[19]:
A             int64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object

In [20]:
df1.head()


Out[20]:
A B C D
2016-12-09 1.968651 -1.139141 -0.389745 -0.126086
2016-12-10 -0.360829 -0.232400 0.478658 0.957847
2016-12-11 1.885744 -0.709779 -0.358930 -0.239134
2016-12-12 0.494197 1.088236 -0.157116 -0.887710
2016-12-13 0.258558 -0.023414 -2.204672 -1.048449

In [21]:
df1.tail(3)


Out[21]:
A B C D
2016-12-12 0.494197 1.088236 -0.157116 -0.887710
2016-12-13 0.258558 -0.023414 -2.204672 -1.048449
2016-12-14 0.387750 -0.684570 0.786703 -0.400111

In [22]:
df1.index


Out[22]:
DatetimeIndex(['2016-12-09', '2016-12-10', '2016-12-11', '2016-12-12',
               '2016-12-13', '2016-12-14'],
              dtype='datetime64[ns]', freq='D')

In [24]:
df1.describe()


Out[24]:
A B C D
count 6.000000 6.000000 6.000000 6.000000
mean 0.772345 -0.283511 -0.307517 -0.290607
std 0.942777 0.778024 1.043706 0.711505
min -0.360829 -1.139141 -2.204672 -1.048449
25% 0.290856 -0.703477 -0.382041 -0.765810
50% 0.440973 -0.458485 -0.258023 -0.319622
75% 1.537857 -0.075661 0.319714 -0.154348
max 1.968651 1.088236 0.786703 0.957847

In [25]:
df1.T


Out[25]:
2016-12-09 00:00:00 2016-12-10 00:00:00 2016-12-11 00:00:00 2016-12-12 00:00:00 2016-12-13 00:00:00 2016-12-14 00:00:00
A 1.968651 -0.360829 1.885744 0.494197 0.258558 0.387750
B -1.139141 -0.232400 -0.709779 1.088236 -0.023414 -0.684570
C -0.389745 0.478658 -0.358930 -0.157116 -2.204672 0.786703
D -0.126086 0.957847 -0.239134 -0.887710 -1.048449 -0.400111

In [26]:
df1.sort_values(by='B')


Out[26]:
A B C D
2016-12-09 1.968651 -1.139141 -0.389745 -0.126086
2016-12-11 1.885744 -0.709779 -0.358930 -0.239134
2016-12-14 0.387750 -0.684570 0.786703 -0.400111
2016-12-10 -0.360829 -0.232400 0.478658 0.957847
2016-12-13 0.258558 -0.023414 -2.204672 -1.048449
2016-12-12 0.494197 1.088236 -0.157116 -0.887710

In [28]:
df1['A']


Out[28]:
2016-12-09    1.968651
2016-12-10   -0.360829
2016-12-11    1.885744
2016-12-12    0.494197
2016-12-13    0.258558
2016-12-14    0.387750
Freq: D, Name: A, dtype: float64

In [31]:
df1[1:3]


Out[31]:
A B C D
2016-12-10 -0.360829 -0.232400 0.478658 0.957847
2016-12-11 1.885744 -0.709779 -0.358930 -0.239134

In [34]:
df1['2016-12-10':'2016-12-13']


Out[34]:
A B C D
2016-12-10 -0.360829 -0.232400 0.478658 0.957847
2016-12-11 1.885744 -0.709779 -0.358930 -0.239134
2016-12-12 0.494197 1.088236 -0.157116 -0.887710
2016-12-13 0.258558 -0.023414 -2.204672 -1.048449

In [37]:
df1.loc(dates[0])


Out[37]:
<pandas.core.indexing._LocIndexer at 0x117b19810>

In [39]:
df1.at[dates[0],'A']


Out[39]:
1.9686511145831536

In [40]:
df1.iloc[3]


Out[40]:
A    0.494197
B    1.088236
C   -0.157116
D   -0.887710
Name: 2016-12-12 00:00:00, dtype: float64

In [ ]: