百度技巧

百度默认是模糊查询
准确查询:在查询内容之间添加 ”” 引号
只检索标题: intitle:待查寻内容
排除信息: -关键词 减号+关键词
根据特定文件类型检索: filetype:文件类型 例如 filetype:pdf

数据补全

比赛提供的数据可能会存在数据缺失,部分单元格是null/空,因此我们需要对数据进行一些预处理。

缺失值处理
  1. 缺失过多不考虑
    1. 如果数据确实过多,数据补全会很大幅度的偏离正常数据值,因此直接不考虑该项数据。
      例如调查人口信息,发现"年龄”这一项缺失了40%,就直接把该项指标删除。
  1. 均值、众数补插
    1. 就是将当前已有数据的均值、众数作为空缺数据补全。
      定量数据选均值,例如关于一群人的身高、年龄等
      定性数据选众数,例如关于一群人的性别、文化程度等
      两者均只使用于人口的数量年龄、经济产业情况等对个体精度要求不大的数据
  1. Newton 插值法
    1. 根据固定公式,构造近似函数,补上缺失值,普遍适用性强
      缺点:区间边缘处的不稳定震荡,即龙格现象(不适用)不适合对导数有要求的题目
      适用赛题:热力学温度、地形测量、定位等只追求函数值精准而不关心变化的数据
  1. 样条插值法
    1. 用分段光滑的曲线去插值
      光滑意味着曲线不仅连续,还要有连续的曲率
      适用赛题:零件加工,水库水流量,图像“基线漂移”,机器人轨迹等精度要求高、没有突变的数据
(以上够用)拓展方法:分段插值、Hermite插值
 

异常值处理
例如:满分试卷是100分,但存在数据超过了100分,那么这个数据就是异常数据。
对于异常数据,将所有异常数据清楚,然后对其作缺失值同等处理。
注:当数据范围已知时,我们可以直接将超出范围的数据定为异常数据
import pandas # 绑定数据集 df = pandas.DataFrame({ "grade" : [8, 9, 10, 7, 6, 3, 30, 4, 13, 9, 2] }) # 设定范围闭区间 lower_limit = 0 upper_limit = 10 # 筛选数据集 data = df[(df["grade"] >= lower_limit) & (df["grade"] <= upper_limit)] # 打印数据集 print(data)
当数据未知时有以下解决方案:
  1. 正态分布原则
    1. notion image
      数值分布在中的概率为99.73%,其中为平均值,为标准差 而在其范围外存在的概率为不到0.3,那么我们就可以近似的认为这样的数据是异常值 适用题目总体符合正态分布,例如人口数据、测量误差、生产加工质量、考试成绩等 不适用题目:总体符合其他分布,例如公交站人数排队论符合泊松分布
      from scipy.integrate import quad import numpy as np import matplotlib.pyplot as plt x = np.linspace(-4, 4, num = 100) constant = 1.0 / np.sqrt(2*np.pi) pdf_normal_distribution = constant * np.exp((-x**2) / 2.0) fig, ax = plt.subplots(figsize=(10, 5)); ax.plot(x, pdf_normal_distribution); ax.set_ylim(0); ax.set_title('Normal Distribution', size = 20); ax.set_ylabel('Probability Density', size = 20);
  1. 箱型图
    1. 将数据从小到大排序,分成如下层次
      notion image
      下四分位数:排行在25%的数据 (定义为 Q1
      中位数: 排行在50%的数据 (定义为 Q2
      上四分位数:排行在75%的数据 (定义为 Q3
      定义四分位距 ,也就是排行在75%的数据 减去 排行在25%的数据。
      一般设 范围内为正常值,
      适用范围:普遍适用各种情况
       
       
badge