### 华为网络AI学习赛2021-硬盘异常检测
[华为网络AI学习赛2021-硬盘异常检测](https://competition.huaweicloud.com/information/1000041370/introduction)
### 特征工程 Filter(3) 相关系数
``` python
# 计算相关系数
train_data_df_corr = train_data.corr()
```
``` python
import matplotlib.pyplot as plt
import seaborn as sns
```
``` python
# 设置大小
plt.subplots(figsize=(20, 20))
# 热力图
# annot=True 显示数值
sns.heatmap(train_data_df_corr.round(2),annot=True)
```

``` python
# print(train_data_df_corr.index)
# print(train_data_df_corr.columns)
i = 1
# 输出相关系数大于0.95的行列索引值
# index = col , 相关系数为1
for index in train_data_df_corr.index:
for col in train_data_df_corr.columns:
corr_val = train_data_df_corr.loc[index,col]
# 对称矩阵的处理
if index == col:
break
if (corr_val> 0.99) and index != col:
print(i,"-",index,"-",col,"-",corr_val)
i = i+1
```

``` python
查阅比赛资料,补充知识
https://competition.huaweicloud.com/information/1000041370/circumstance
```

``` python
# 经过个人的选取,是一次尝试,并非最完美的方案。
corr_index_col = ["smart_194_normalized","smart_194_raw","smart_198_normalized","smart_198_raw","smart_240_raw"]
# 删除 corr_index_col 的列
# 相关系数过大的话,保留一列就好了
train_data_df.drop(corr_index_col,axis=1,inplace=True)
```
``` python
# 查看数据
train_data
```
``` python
# 设置大小
plt.subplots(figsize=(20, 20))
# 热力图
# annot=True 显示数值
# train_data.corr().round(2) 保留两位小数
sns.heatmap(train_data.corr().round(2),annot=True)
# 这会再看的话,就会发现除了对角线外,就没有1了
```

### 学习资源和参考资料
[【2021学习赛---硬盘异常检测】2月23号直播ppt](https://bbs.huaweicloud.com/forum/thread-108940-1-1.html)
[【学习赛2021--硬盘异常检测】样例代码](https://bbs.huaweicloud.com/forum/thread-107416-1-1.html)
[【学习赛2021--KPI异常检测】优秀选手usstroot直播baseline代码及ppt](https://bbs.huaweicloud.com/forum/thread-106253-1-1.html)
[网络AI学习赛2021.硬盘异常检测,赛题解读](https://bbs.huaweicloud.com/live/dks_live/202102231900.html)
### 其他学习赛推荐
[华为网络AI学习赛2021-KPI异常检测](https://competition.huaweicloud.com/information/1000041344/introduction)
[华为网络AI学习赛2021-日志异常检测](https://competition.huaweicloud.com/information/1000041371/introduction)
### 备注
1. 感谢老师的教学与课件
2. 欢迎各位同学一起来交流比赛心得^_^
3. 比赛配备了较为丰富的学习资料,有助于新手平稳入门,推荐参赛

