Skip to content

Commit 8b57feb

Browse files
committed
修正了文档中数学公式无法显示的问题
1 parent 5ce18be commit 8b57feb

4 files changed

+32
-25
lines changed

Day66-80/74.深入浅出pandas-3.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,14 +294,19 @@ all_emp_df.drop_duplicates(['ename', 'job'], inplace=True)
294294

295295
异常值的检测有Z-score 方法、IQR 方法、DBScan 聚类、孤立森林等,这里我们对前两种方法做一个简单的介绍。
296296

297-
<img src="http://localhost/mypic/20211004192858.png" style="zoom:50%;">
297+
<img src="res/3sigma.png" style="zoom:50%;">
298298

299-
如果数据服从正态分布,依据3σ法则,异常值被定义与平均值的偏差超过三倍标准差的值。在正态分布下,距离平均值3σ之外的值出现的概率为$ P(|x-\mu|>3\sigma)<0.003 $,属于小概率事件。如果数据不服从正态分布,那么可以用远离均值的多少倍的标准差来描述,这里的倍数就是Z-score。Z-score以标准差为单位去度量某一原始分数偏离平均值的距离,公式如下所示。
299+
如果数据服从正态分布,依据3σ法则,异常值被定义与平均值的偏差超过三倍标准差的值。在正态分布下,距离平均值3σ之外的值出现的概率为 $\small{P(\lvert x - \mu \rvert \gt 3 \sigma) < 0.003}$ ,属于小概率事件。如果数据不服从正态分布,那么可以用远离均值的多少倍的标准差来描述,这里的倍数就是Z-score。Z-score以标准差为单位去度量某一原始分数偏离平均值的距离,公式如下所示。
300+
301+
$$
302+
z = \frac {X - \mu} {\sigma}
300303
$$
301-
z = \frac {X - \mu} {\sigma} \\
302-
|z| > 3
304+
303305
$$
304-
Z-score需要根据经验和实际情况来决定,通常把远离标准差`3`倍距离以上的数据点视为离群点,下面的代给出了如何通过Z-score方法检测异常值。
306+
\lvert z \rvert > 3
307+
$$
308+
309+
Z-score需要根据经验和实际情况来决定,通常把远离标准差 3 倍距离以上的数据点视为离群点,下面的代给出了如何通过Z-score方法检测异常值。
305310

306311
```Python
307312
def detect_outliers_zscore(data, threshold=3):
@@ -311,7 +316,7 @@ def detect_outliers_zscore(data, threshold=3):
311316
return data[z_score > threshold]
312317
```
313318

314-
IQR 方法中的IQR(Inter-Quartile Range)代表四分位距离,即上四分位数(Q3)和下四分位数(Q1)的差值。通常情况下,可以认为小于 $ Q1 - 1.5 \times IQR $ 或大于 $ Q3 + 1.5 \times IQR $ 的就是异常值,而这种检测异常值的方法也是箱线图(后面会讲到)默认使用的方法。下面的代码给出了如何通过 IQR 方法检测异常值。
319+
IQR 方法中的 IQR(Inter-Quartile Range)代表四分位距离,即上四分位数(Q3)和下四分位数(Q1)的差值。通常情况下,可以认为小于 $\small{Q1 - 1.5 \times IQR}$ 或大于 $\small{Q3 + 1.5 \times IQR}$ 的就是异常值,而这种检测异常值的方法也是箱线图(后面会讲到)默认使用的方法。下面的代码给出了如何通过 IQR 方法检测异常值。
315320

316321
```Python
317322
def detect_outliers_iqr(data, whis=1.5):
@@ -521,7 +526,7 @@ jobs_df.head()
521526

522527
`applymap``apply`两个方法在数据预处理的时候经常用到,`Series`对象也有`apply`方法,也是用于数据的预处理,但是`DataFrame`对象还有一个名为`transform` 的方法,也是通过传入的函数对数据进行变换,类似`Series`对象的`map`方法。需要强调的是,`apply`方法具有归约效果的,简单的说就是能将较多的数据处理成较少的数据或一条数据;而`transform`方法没有归约效果,只能对数据进行变换,原来有多少条数据,处理后还是有多少条数据。
523528

524-
如果要对数据进行深度的分析和挖掘,字符串、日期时间这样的非数值类型都需要处理成数值,因为非数值类型没有办法计算相关性,也没有办法进行$\chi^2$检验等操作。对于字符串类型,通常可以其分为以下三类,再进行对应的处理。
529+
如果要对数据进行深度的分析和挖掘,字符串、日期时间这样的非数值类型都需要处理成数值,因为非数值类型没有办法计算相关性,也没有办法进行 $\small{\chi^{2}}$ 检验等操作。对于字符串类型,通常可以其分为以下三类,再进行对应的处理。
525530

526531
1. 有序变量(Ordinal Variable):字符串表示的数据有顺序关系,那么可以对字符串进行序号化处理。
527532
2. 分类变量(Categorical Variable)/ 名义变量(Nominal Variable):字符串表示的数据没有大小关系和等级之分,那么就可以使用独热编码的方式处理成哑变量(虚拟变量)矩阵。

Day66-80/76.深入浅出pandas-5.md

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -145,52 +145,54 @@ plt.show()
145145

146146
### 相关性判定
147147

148-
在统计学中,我们通常使用协方差(covariance)来衡量两个随机变量的联合变化程度。如果变量 $X$ 的较大值主要与另一个变量 $Y$ 的较大值相对应,而两者较小值也相对应,那么两个变量倾向于表现出相似的行为,协方差为正。如果一个变量的较大值主要对应于另一个变量的较小值,则两个变量倾向于表现出相反的行为,协方差为负。简单的说,协方差的正负号显示着两个变量的相关性。方差是协方差的一种特殊情况,即变量与自身的协方差。
148+
在统计学中,我们通常使用协方差(covariance)来衡量两个随机变量的联合变化程度。如果变量 $\small{X}$ 的较大值主要与另一个变量 $\small{Y}$ 的较大值相对应,而两者较小值也相对应,那么两个变量倾向于表现出相似的行为,协方差为正。如果一个变量的较大值主要对应于另一个变量的较小值,则两个变量倾向于表现出相反的行为,协方差为负。简单的说,协方差的正负号显示着两个变量的相关性。方差是协方差的一种特殊情况,即变量与自身的协方差。
149149

150150
$$
151151
cov(X,Y) = E((X - \mu)(Y - \upsilon)) = E(X \cdot Y) - \mu\upsilon
152152
$$
153153

154-
如果 $X$ 和 $Y$ 是统计独立的,那么二者的协方差为0,这是因为在 $X$ 和 $Y$ 独立的情况下:
154+
如果 $\small{X}$ 和 $\small{Y}$ 是统计独立的,那么二者的协方差为 0,这是因为在 $\small{X}$ 和 $\small{Y}$ 独立的情况下:
155155

156156
$$
157157
E(X \cdot Y) = E(X) \cdot E(Y) = \mu\upsilon
158158
$$
159159

160-
协方差的数值大小取决于变量的大小,通常是不容易解释的,但是正态形式的协方差可以显示两变量线性关系的强弱。在统计学中,皮尔逊积矩相关系数就是正态形式的协方差,它用于度量两个变量 $X$ 和 $Y$ 之间的相关程度(线性相关),其值介于`-1``1`之间。
160+
协方差的数值大小取决于变量的大小,通常是不容易解释的,但是正态形式的协方差可以显示两变量线性关系的强弱。在统计学中,皮尔逊积矩相关系数就是正态形式的协方差,它用于度量两个变量 $\small{X}$ 和 $\small{Y}$ 之间的相关程度(线性相关),其值介于 -1 到 1 之间。
161161

162162
$$
163163
\frac {cov(X, Y)} {\sigma_{X}\sigma_{Y}}
164164
$$
165165

166-
估算样本的协方差和标准差,可以得到样本皮尔逊系数,通常用希腊字母 $\rho$ 表示。
166+
估算样本的协方差和标准差,可以得到样本皮尔逊系数,通常用希腊字母 $\small{\rho}$ 表示。
167167

168168
$$
169169
\rho = \frac {\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})} {\sqrt{\sum_{i=1}^{n}(X_i - \bar{X})^2} \sqrt{\sum_{i=1}^{n}(Y_i - \bar{Y})^2}}
170170
$$
171171

172-
我们用 $\rho$ 值判断指标的相关性时遵循以下两个步骤。
172+
我们用 $\small{\rho}$ 值判断指标的相关性时遵循以下两个步骤。
173173

174174
1. 判断指标间是正相关、负相关,还是不相关。
175-
- 当 $ \rho \gt 0 $,认为变量之间是正相关,也就是两者的趋势一致。
176-
- 当 $ \rho \lt 0 $,认为变量之间是负相关,也就是两者的趋势相反。
177-
- 当 $ \rho \approx 0 $,认为变量之间是不相关的,但并不代表两个指标是统计独立的。
175+
- 当 $\small{\rho \gt 0}$,认为变量之间是正相关,也就是两者的趋势一致。
176+
- 当 $\small{\rho \lt 0}$,认为变量之间是负相关,也就是两者的趋势相反。
177+
- 当 $\small{\rho \approx 0}$,认为变量之间是不相关的,但并不代表两个指标是统计独立的。
178178
2. 判断指标间的相关程度。
179-
- 当 $ \rho $ 的绝对值在 $ [0.6,1] $ 之间,认为变量之间是强相关的。
180-
- 当 $ \rho $ 的绝对值在 $ [0.1,0.6) $ 之间,认为变量之间是弱相关的。
181-
- 当 $ \rho $ 的绝对值在 $ [0,0.1) $ 之间,认为变量之间没有相关性。
179+
- 当 $\small{\rho}$ 的绝对值在 $\small{[0.6,1]}$ 之间,认为变量之间是强相关的。
180+
- 当 $\small{\rho}$ 的绝对值在 $\small{[0.1,0.6)}$ 之间,认为变量之间是弱相关的。
181+
- 当 $\small{\rho}$ 的绝对值在 $\small{[0,0.1)}$ 之间,认为变量之间没有相关性。
182182

183183
皮尔逊相关系数适用于:
184184

185-
1. 两个变量之间是线性关系,都是连续数据。
186-
2. 两个变量的总体是正态分布,或接近正态的单峰分布。
187-
3. 两个变量的观测值是成对的,每对观测值之间相互独立。
185+
1. 两个变量之间是线性关系,都是连续数据。
186+
2. 两个变量的总体是正态分布,或接近正态的单峰分布。
187+
3. 两个变量的观测值是成对的,每对观测值之间相互独立。
188188

189189
这里,我们顺便说一下,如果两组变量并不是来自于正态总体的连续值,我们该如何判断相关性呢?对于定序尺度(等级),我们可以使用斯皮尔曼秩相关系数,其计算公式如下所示:
190+
190191
$$
191192
r_{s}=1-{\frac {6\sum d_{i}^{2}}{n(n^{2}-1)}}
192193
$$
193-
其中,$d_{i}=\operatorname {R} (X_{i})-\operatorname {R} (Y_{i})$,即每组观测中两个变量的等级差值,$n$为观测样本数。
194+
195+
其中, $\small{d_{i}=\operatorname {R} (X_{i})-\operatorname {R} (Y_{i})}$ ,即每组观测中两个变量的等级差值, $\small{n}$ 为观测样本数。
194196

195197
对于定类尺度(类别),我们可以使用卡方检验的方式来判定其是否相关。其实很多时候,连续值也可以通过分箱的方式处理成离散的等级或类别,然后使用斯皮尔曼秩相关系数或卡方检验的方式来判定相关性。
196198

@@ -205,7 +207,7 @@ boston_df
205207

206208
输出:
207209

208-
<img src="/Users/Hao/Desktop/Python-Data-Analysis/res/boston_house_price.png" style="zoom:50%;">
210+
<img src="res/boston_house_price.png" style="zoom:50%;">
209211

210212
> **说明**:上面代码中使用了相对路径来访问 CSV 文件,也就是说 CSV 文件在当前工作路径下名为`data`的文件夹中。如果需要上面例子中的 CSV 文件,可以通过下面的百度云盘地址进行获取。链接:<https://pan.baidu.com/s/1rQujl5RQn9R7PadB2Z5g_g?pwd=e7b4>,提取码:e7b4。
211213

Day66-80/78.数据可视化-1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ plt.show()
311311

312312
#### 箱线图
313313

314-
箱线图又叫箱型图或盒须图,是一种用于展示一组数据分散情况的统计图表,如下所示。因图形如箱子,而且在上下四分位数之外有线条像胡须延伸出去而得名。在箱线图中,箱子的上边界是上四分位数($Q_3$)的位置,箱子的下边界是下四分位数($Q_1$)的位置,箱子中间的线条是中位数($Q_2$)的位置,而箱子的长度就是四分位距离(IQR)。除此之外,箱子上方线条的边界是最大值,箱子下方线条的边界是最小值,这两条线之外的点就是离群值(outlier)。所谓离群值,是指数据小于$Q_1 - 1.5 \times IQR$或数据大于$Q_3 + 1.5 \times IQR$的值,公式中的`1.5`还可以替换为`3`来发现极端离群值(extreme outlier),而介于`1.5``3`之间的离群值通常称之为适度离群值(mild outlier)。
314+
箱线图又叫箱型图或盒须图,是一种用于展示一组数据分散情况的统计图表,如下所示。因图形如箱子,而且在上下四分位数之外有线条像胡须延伸出去而得名。在箱线图中,箱子的上边界是上四分位数( $\small{Q_{3}}$ )的位置,箱子的下边界是下四分位数( $\small{Q_{1}}$ )的位置,箱子中间的线条是中位数( $\small{Q_{2}}$ )的位置,而箱子的长度就是四分位距离(IQR)。除此之外,箱子上方线条的边界是最大值,箱子下方线条的边界是最小值,这两条线之外的点就是离群值(outlier)。所谓离群值,是指数据小于 $\small{Q_{1} - 1.5 \times IQR}$ 或数据大于 $\small{Q_{3} + 1.5 \times IQR}$ 的值,公式中的`1.5`还可以替换为`3`来发现极端离群值(extreme outlier),而介于`1.5``3`之间的离群值通常称之为适度离群值(mild outlier)。
315315

316316
可以使用`pyplot`模块的`boxplot`函数来绘制箱线图,代码如下所示。
317317

Day66-80/80.数据可视化-3.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ sns.pairplot(data=tips_df, hue='sex')
9999

100100
如果对上面图表的颜色不满意,还可以通过 palette 参数选择 seaborn 自带的“调色板”来修改颜色,这种方式相比于自行指定颜色或使用随机颜色方便和靠谱了很多,下图为大家展示了部分 seaborn 自带的“调色板”。
101101

102-
<img src="http://localhost//mypic/20220502120749.png" style="zoom:45%;">
102+
<img src="res/20220502120749.png" style="zoom:45%;">
103103

104104
我们可以将上面的代码稍作修改,看看运行结果有什么差别。
105105

0 commit comments

Comments
 (0)