1. 项目背景
随着用户数据量的激增,传统的数据分析方法和营销方式受到巨大的挑战,急需对海量数据进行深度挖掘,
探索用户消费行为数据的潜在价值。本项目对原有的推荐模型进行优化,基于品牌的性能,价格及用户使用信息,对用户实行换机预测并推荐倾向的终端应用。通过模型对用户换机时机进行预测,并推荐终端模型,换机预测模型运用随机森林算法对数据进行预测,终端偏好推荐模型通过聚类算法,对用户群体进行分类,最终对模型进行输出,总结偏好分析和聚类结果,构造终端选择升级对照库和热机库,对推荐目标机型进行排序获得结果。
2. 功能组成
基于聚类算法与随机森林算法的手机终端换机推荐系统的功能主要包括:
3. 数据读取与预处理
3.1 依赖包导入和数据读取
导入数据分析所需要的依赖包:
%%time
import os
import gc
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
from IPython.display import display
np.random.seed(7)
plt.style.use(‘fivethirtyeight’)
from tqdm import tqdm
import warnings
warnings.filterwarnings(‘ignore’)
from matplotlib.font_manager import FontProperties
# 读取字体路径,设置字体为思源黑体
myfont=FontProperties(fname=r'/System/Library/Fonts/Hiragino Sans GB.ttc')
sns.set(font=myfont.get_name())
本项目采用某电信服务商近一年的用户终端换机数据,每个月为一个csv文件,pandas读取后,进行数据的拼接:
month_df = pd.concat([month1_df, month2_df, month3_df, month4_df, month5_df, month6_df,
month7_df, month8_df, month9_df, month10_df, month11_df, month12_df], axis=0)
del month1_df, month2_df, month3_df, month4_df, month5_df, month6_df
del month7_df, month8_df, month9_df, month10_df, month11_df, month12_df
3.2 数据缺失值分析和填充
def contains_null(dataframe):
missing_df = dataframe.isnull().sum(axis=0).reset_index()
missing_df.columns = [‘column_name’, ‘mis