发明名称 基于粒子分类与BP神经网络的移动通信用户流失预测方法
摘要 一种基于粒子分类与BP神经网络的移动通信用户流失预测方法,包括采集移动用户的通信记录数据;数据预处理,得到所需的样本数据集;建立BP神经网络结构;基于改进的粒子群优化算法PSO初始化所述BP神经网络的权值矩阵和阈值矩阵;对具有最好适应度的粒子对应的BP神经网络进行训练,得到移动通信用户流失模型;利用移动通信用户流失模型进行移动通信用户流失预测。本发明结合应用粒子分类优化算法(PCO)和适应度计算(PFC)两个过程对BP神经网络的权值矩阵和阈值矩阵进行初始化,使BP神经网络的权值矩阵和阈值矩阵更接近全局最优,从而提高BP神经网络对移动用户流失预测的准确率。
申请公布号 CN105469144A 申请公布日期 2016.04.06
申请号 CN201510809789.X 申请日期 2015.11.19
申请人 东北大学 发明人 顾宁伦;于瑞云;姜国强;安轩邈;夏兴有
分类号 G06N3/08(2006.01)I;G06Q50/30(2012.01)I 主分类号 G06N3/08(2006.01)I
代理机构 沈阳东大知识产权代理有限公司 21109 代理人 梁焱
主权项 一种基于粒子分类与BP神经网络的移动通信用户流失预测方法,其特征在于:包括如下步骤:步骤1:采集移动用户的通信记录数据;步骤2:数据预处理,得到所需的样本数据集;步骤3:建立BP神经网络结构;步骤4:基于改进的粒子群优化算法PSO初始化所述BP神经网络的权值矩阵和阈值矩阵,包括输入层到隐层的权值矩阵、隐层到输出层的权值矩阵、隐层的阈值矩阵和输出层的阈值矩阵;假设种群中有N个粒子,则种群中的每个粒子都对应着一个BP神经网络,每个粒子的位置向量都会拆解成该粒子所对应的BP神经网络的权值矩阵和阈值矩阵;根据所述BP神经网络结构计算出每个粒子位置向量的维度D=输入层神经元个数*隐层神经元个数+隐层神经元个数*输出层神经元个数+隐层神经元个数+输出层神经元个数;在D维空间中,将第i个粒子的位置向量表示为X<sub>i</sub>=(x<sub>i1</sub>,x<sub>i2</sub>,...,x<sub>iD</sub>)<sup>T</sup>、第i个粒子的速度向量可以表示为V<sub>i</sub>=(v<sub>i1</sub>,v<sub>i2</sub>,...,v<sub>iD</sub>)<sup>T</sup>、第i个粒子当前所发现的最好位置表示为P<sub>i</sub>=(p<sub>i1</sub>,p<sub>i2</sub>,...,p<sub>iD</sub>)<sup>T</sup>、种群当前所发现的最好位置表示为P<sub>g</sub>=(p<sub>g1</sub>,p<sub>g2</sub>,...,p<sub>gD</sub>)<sup>T</sup>以及第i个粒子的适应度表示为fit(X<sub>i</sub>);步骤4.1:根据粒子的适应度对种群内粒子进行分类;将种群内拥有最好适应度的1/3粒子作为引导粒子、拥有最差适应度的1/3粒子作为饥饿粒子、其他1/3粒子作为普通粒子;步骤4.2:对种群内不同种类的粒子进行速度更新;1)引导粒子的速度更新公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mi>V</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><msubsup><mi>&omega;V</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mn>1</mn></msub><mrow><mo>(</mo><msubsup><mi>P</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><msub><mi>r</mi><mn>2</mn></msub><mrow><mo>(</mo><msubsup><mi>P</mi><mi>g</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>E</mi><mi>h</mi></msub><mo>*</mo><mrow><mo>(</mo><msubsup><mi>V</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>V</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>2</mn></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000852077200000011.GIF" wi="1774" he="80" /></maths>其中V<sub>i</sub><sup>k</sup>为第k次迭代时第i个粒子的速度;V<sub>i</sub><sup>k‑1</sup>为第k‑1次迭代时第i个粒子的速度;<img file="FDA0000852077200000013.GIF" wi="98" he="75" />为第k‑1次迭代时第i个粒子的位置;V<sub>i</sub><sup>k‑2</sup>为第k‑2次迭代时第i个粒子的速度;P<sub>i</sub><sup>k‑1</sup>为第i个粒子在第k‑1次迭代后所发现的最好位置,<img file="FDA0000852077200000012.GIF" wi="98" he="80" />为种群在第k‑1次迭代后所发现的最好位置;c<sub>1</sub>和c<sub>2</sub>是两个大于0的常量,其中c<sub>1</sub>用来调整粒子飞向自己当前最好位置的步长,c<sub>2</sub>用来调整粒子飞向种群当前最好位置的步长;r<sub>1</sub>和r<sub>2</sub>是两个取值在[0,1]区间的随机数;ω为惯性权重;变量E<sub>h</sub>表示一个引导粒子受其周围普通粒子影响的程度;2)普通粒子的速度更新公式如下所示:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>V</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><msubsup><mi>&omega;V</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mn>1</mn></msub><mrow><mo>(</mo><msubsup><mi>P</mi><mrow><mi>i</mi><mi>d</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>X</mi><mrow><mi>i</mi><mi>d</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000852077200000021.GIF" wi="1374" he="78" /></maths>其中<img file="FDA0000852077200000022.GIF" wi="91" he="78" />表示第k‑1次迭代时,第i个普通粒子周围的引导粒子的d维分量;<img file="FDA0000852077200000023.GIF" wi="101" he="76" />表示第k‑1次迭代时,第i个普通粒子的d维分量;3)饥饿粒子的速度更新公式和现有PSO算法中粒子速度更新公式相同,如公式(6)所示:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>V</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><msubsup><mi>&omega;V</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mn>1</mn></msub><mrow><mo>(</mo><msubsup><mi>P</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><msub><mi>r</mi><mn>2</mn></msub><mrow><mo>(</mo><msubsup><mi>P</mi><mi>g</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000852077200000024.GIF" wi="1269" he="86" /></maths>其中<img file="FDA0000852077200000025.GIF" wi="101" he="72" />表示在第k‑1次迭代第i个粒子的位置向量;步骤4.3:根据更新后的粒子速度,进行粒子位置更新;步骤4.4:将更新后的粒子位置向量中的元素按顺序依次分配到BP神经网络的输入层到隐层的权值矩阵、隐层到输出层的权值矩阵、隐层的阈值矩阵和输出层的阈值矩阵;其中输入层到隐层的权值矩阵的元素个数为输入层神经元个数*隐层神经元个数;隐层到输出层的权值矩阵的元素个数为隐层神经元个数*输出层神经元个数;隐层的阈值矩阵的元素个数为隐层神经元个数;输出层的阈值矩阵的元素个数为输出层神经元个数;步骤4.5:计算粒子适应度;步骤4.6:判断种群当前的最好粒子适应度是否达到预设值或者迭代过程是否达到预设的最大迭代次数,是,则转至步骤5;否,则转至步骤4.1,继续迭代过程;步骤5:利用步骤2得到的数据集,对步骤4中得到的具有最好适应度的粒子对应的BP神经网络进行训练,得到移动通信用户流失模型;步骤6:利用移动通信用户流失模型进行移动通信用户流失预测。
地址 110819 辽宁省沈阳市和平区文化路3号巷11号