背景与挖掘目标
简述:有很多窃电漏电行为,要根据已经有的训练集数据来诊断,构筑模型判断用户是否存在窃漏电行为
数据来源:
https://github.com/keefecn/python_practice_of_data_analysis_and_mining/tree/master/chapter6/demo
分析方法与过程
- 业务系统:原始数据(选择性抽取/实时抽取)
- 数据探索与预处理:数据清洗、缺失值处理、数据变换
- 建模样本数据(训练集):模型训练、模型评价
- 预处理后诊断模型(测试集):模型预测
- 诊断结果,模型优化与重构
数据量较大,直接进行数据预处理过程,开始构建模型
数据预处理
拉格朗日插值法填补缺失值
首先从原始数据集中确定因变量和自变量,去除缺失值前后5个数据(遇到空值则舍去),取五个是考虑总数据约为20行,有2-3个缺失值,前后取5则正好十个恰好均分。
代码如下(数据使用demo/data/missing_data.xls):
import pandas as pd
from scipy.interpolate import lagrange
inputfile = '路径/missing_data.xls'
outputfile = '路径/missing_data_processed.xls'
data = pd.read_excel(inputfile,header=None)
# S为列向量、n为被插值的位置、k为取前后的数据个数,我们默认取5
def ployinterp_column (s,n,k=5):
# 取前后k列形成新的列表
y = s[list(range(n-k,n))+ list(range(n+1,n+1+k))]
# 去除空值
y = y[y.notnull(