![059a2482dfb02ed96798d4c15928edc0.png](https://i-blog.csdnimg.cn/blog_migrate/dd2269ecf8c073d00ee6b29871b692fe.jpeg)
大数据时代,通过简单的仪表监测家庭、工厂等地的实时用电量后,可以通过聚类算法对用户用电特征进行聚类,这有利于:
1.将用电行为类似的用户进行聚合,以便用电公司提供更合理的套餐服务;
2.根据不同类型的用户行为,收取不同的税费;
3.根据不同类型的用户行为,调整电网的输电效率,提高电能利用率。
本次分析采用K-means聚类方法,数据源自Pecan Street Energy Database的数据库文件dataport_sqlite
。
具体分析流程如下
1.导入数据
导入必要的模块
%matplotlib inline
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import pylab
import seaborn as sns
import sqlite3
从数据库文件中读取数据
cwd = os.getcwd() #获得当前的文件路径
conn = sqlite3.connect(str(cwd) + "/dataport_sqlite")
cursor = conn.cursor() #构建指针
query = "SELECT * FROM new_table;"
cursor.execute(query) #执行读取数据命令
data = cursor.fetchall() #抓取数据
用pandas将数据转换成DataFrame格式
loads_df = pd.DataFrame(data, columns=['id','date','energy_use'])
loads_df.head()
![913f6e0db1d6146af2574b03c23dd495.png](https://i-blog.csdnimg.cn/blog_migrate/04cbbb9d53305532fba477840e0ce708.jpeg)
数据中,id代表不同的用户;date代表时间,每15min采集一次;energy_use代表测量的电量,以kW表示。
通过简单的查询命令可以获得数据集的规模:
print("当前数据集含有%s行,%s列"%(loads_df.shape[0],loads_df.shape[1]))
当前数据集含有646981行,3列
print(" 最早时间: %s n 最晚时间: %s"%(loads_df.date.min(),loads_df.date.max()))
最早时间: 2015-07-01 00:00:00
最晚时间: 2015-08-01 00:00:00
(正好是一个月的用电记录)
loads_df['id'].v