李洋网络做网站,烟台企业宣传片制作公司,凡科建站的优缺点,网络广告营销的好处创建时间#xff1a;2024-02-23 最后编辑时间#xff1a;2024-02-24 作者#xff1a;Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏#xff0c;很高兴遇见你~ 我是 Geeker_LStar#xff0c;一名初三学生#xff0c;热爱计算机和数学#xff0c;我们一起加…创建时间2024-02-23 最后编辑时间2024-02-24 作者Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏很高兴遇见你~ 我是 Geeker_LStar一名初三学生热爱计算机和数学我们一起加油~ ⭐(●’◡’●) ⭐ 那就让我们开始吧 在上一篇 【初中生讲机器学习】11. 回归算法中常用的模型评价指标有哪些here! 中我说我要单开一篇讲讲 “似然”。诺这不就来了嘛~ 在机器学习里似然是个蛮重要的概念但也的确不太好理解我们来看看吧~ 文章目录 似然和概率似然函数数学推导一个例子代码实现 极大似然估计数学推导代码实现 似然和概率
嗯提到 “似然likelihood”那就不得不说说它的好基友 “概率probability” 了。这俩经常被混为一谈甚至某些教科书都这么写但实际上至少在统计学和机器学习里它俩的区别还是很大的。
从一个简单但经典的例子入手 概率 有一个箱子装有除颜色外都相同的黑色球和白色球共 100 个其中黑色球有 90 个白色球 10 个现在从箱子中任取一个球结果是黑色球的概率 这个很简单90/100*100% 90% 嘛这个球是黑球的概率就是 90% 了。 从这个例子可以看出“概率” 是什么就是在你已经知道了前提条件球的总数和颜色分布的时候计算某一种特定情况黑球出现的可能性。 专业一点“概率” 是针对概率空间中的某一个事件而言的。
再来看似然。 似然 有一个箱子装有除颜色外都相同的黑色球和白色球共 100 个其中一种颜色的球 90 个另一种颜色的球 10 个。现在从箱子中任取一球结果是黑色球则箱中黑色球是 90 个可能性是多少 先不说具体怎么计算但至少从直觉上来讲你应该会觉得 “黑色球是 90 个的可能性” 大于 “白色球是 90 个的可能性”。因为你这次摸出的是黑色球而人们总是会倾向于认为 “已经发生的事情发生的概率大”。就比如如果你再摸几个摸完放回去发现一连摸出了 10 个白色球那或许就会认为黑色球是 10 个而白色球是 90 个了。ok 不过这个等到极大似然估计那里再细说。
这个例子想要说明什么呢yes似然和概率的差别就在于“似然” 是对于参数而言的比如球的总数和颜色分布它可以大致概括为 “在当前结果现象出现的情况下参数是某种情况的可能性”。 概率和似然的关系类似贝叶斯那篇中讲过的条件概率 P ( A ∣ B ) P(A|B) P(A∣B) 和后验概率 P ( B ∣ A ) P(B|A) P(B∣A) 之间的关系。概率是从参数条件推到现象结果似然是从现象结果推到参数条件。
从这里再延伸一点讲一下似然函数和概率密度函数或概率质量函数的区别与联系。 简单讲一下概率密度质量函数如果一个变量是离散的它取不同值时的概率是一个个点而不是一条连续的曲线那么就称它的概率函数为概率质量函数而如果这个变量是连续的即它取不同值时的概率能够组成一条连续的曲线那么就称它的概率函数为概率密度函数一个典型的概率密度函数正态分布如下图 虽然我们还没有讲似然函数但是从似然和概率在定义上的不同也可以猜到一二似然函数的自变量是参数概率密度质量函数的自变量是现象结果。似然函数告诉我们在现象结果已知的情况下参数取值为某种情况的可能性是多少而概率密度质量函数告诉我们在参数已知的情况下某种现象结果出现的可能性是多少。 它们两个正好反过来。
似然函数
好热身完毕我们现在来看看似然函数到底是什么。
数学推导
先上数学定义后面详细推 L ( θ ∣ x ) P ( x ∣ θ ) L(\theta|x) P(x|\theta) L(θ∣x)P(x∣θ)其中 L ( θ ∣ x ) L(\theta|x) L(θ∣x) 是似然函数 P ( x ∣ θ ) P(x|\theta) P(x∣θ) 是在条件参数 θ \theta θ 下 x x x 发生的概率。 来推导一下和贝叶斯那篇的推导很相似。为了方便我们把参数定义为 B现象定义为 A。那么我们要求的似然函数就是 L ( B ∣ A ) P ( B ∣ A ) P ( A , B ) P ( A ) P ( A ∣ B ) P ( B ) P ( A ) L(B|A) P(B|A) \frac{P(A, B)}{P(A)} \frac{P(A|B)P(B)}{P(A)} L(B∣A)P(B∣A)P(A)P(A,B)P(A)P(A∣B)P(B)
嘿嘿嘿是不是和贝叶斯那个很像~ 我们知道事件 A 已经发生了我们之前说过“似然” 表示某个现象结果产生时参数是某种情况的可能性所以 P ( A ) P(A) P(A) 直接等于 1 了so 和朴素贝叶斯一样现在又变成联合概率的事情了即 P ( B ∣ A ) P ( A ∣ B ) P ( B ) P(B|A) P(A|B)P(B) P(B∣A)P(A∣B)P(B).
好再继续往下之前我们需要明确一件事——计算似然函数的目的并不是要知道这个值到底是多少似然函数本身的数值没什么意义重要的是比较不同参数的似然函数大小似然函数最大的那个参数就是最符合当前现象结果的参数。
知道这一点之后再去看之前的式子我们不用管 P ( A ∣ B ) P ( B ) P(A|B)P(B) P(A∣B)P(B) 到底是多少我们只需要得到使得 P ( A ∣ B ) P ( B ) P(A|B)P(B) P(A∣B)P(B) 最大的 A A A 值就可以。所以 P ( B ) P(B) P(B) 是多少不重要直接忽略它就好。
so 最后得到的结果就是 L ( θ ∣ x ) P ( x ∣ θ ) L(\theta|x) P(x|\theta) L(θ∣x)P(x∣θ)不过我们可以做进一步的展开。 分两种情况x注意不是参数 θ 而是 x是离散型还是连续型不过本质上没什么区别。 先说连续型吧在概率和贝叶斯的那篇中我讲过假设各个参数彼此独立那么有 L ( θ ∣ x ) P ( x ∣ θ ) f ( x 1 , x 2 , . . . , x n ∣ θ ) ∏ i 1 n f ( x i ∣ θ ) L(\theta|x) P(x|\theta) f(x_1, x_2, ... , x_n|\theta) \prod \limits_{i1}^nf(x_i|\theta) L(θ∣x)P(x∣θ)f(x1,x2,...,xn∣θ)i1∏nf(xi∣θ)这坨东西在数值上等于各个观测值 x 的概率密度函数值的乘积。但是需要明确的是虽然似然函数和概率密度函数在形式上一致但是它们并不等价意思同 “函数的等价”。 概率密度函数的自变量是观测值而似然函数的自变量是参数它描述的是在给定结果的条件下参数出现的可能性。
离散型的也好办公式就是 ∏ i 1 n P ( x i ∣ θ ) \prod \limits_{i1}^nP(x_i|\theta) i1∏nP(xi∣θ)在形式上和概率质量函数等价。
一个例子
用一个抛硬币的例子来理解上面讲的那些。 有一枚硬币抛出后正面朝上的概率为 P反面朝上的概率为 1-P。现在抛这种硬币 10 次共有 6 次正面朝上问 P 的值最有可能是多少 显然这是一个关于似然的问题思路大致如下
计算不同 P 值的似然度即在当前结果的条件下不同 P 值的可能性。似然度最大的 P 值即最有可能的 P 值。
顺着这个思路来算一下记硬币正面向上为 H 第一种情况P0.5也就是硬币正反面朝上的概率相等经典情况均匀的硬币我们要求 L ( 0.5 ∣ 6 H ) L(0.5|6H) L(0.5∣6H)根据 L ( θ ∣ x ) P ( x ∣ θ ) L(\theta|x) P(x|\theta) L(θ∣x)P(x∣θ)我们只需计算 P ( 6 H ∣ 0.5 ) P(6H|0.5) P(6H∣0.5)即在 P0.5 的时候10 次中有 6 次正面朝上的概率。
嗯典型的二项分布之前说过关于各种分布会单独开一篇讲二项分布的公式 l i k e l i h o o d ( X k ) C n k P k ( 1 − P ) n − k likelihood(Xk) C_{n}^{k}P^{k}(1-P)^{n-k} likelihood(Xk)CnkPk(1−P)n−k其实如果学过排列组合的话应该还算好理解前面的 C n k C_{n}^{k} Cnk 就是组合数后面的 P k ( 1 − P ) n − k P^{k}(1-P)^{n-k} Pk(1−P)n−k 就是某一种符合要求的情况出现的概率。
先来算一下 P0.5其中 k 6。 l i k e l i h o o d ( P 0.5 ) C 10 6 0. 5 6 0. 5 4 210 ∗ 0. 5 1 0 ≈ 0.20508 likelihood(P0.5) C_{10}^{6}0.5^{6}0.5^{4} 210*0.5^10 ≈ 0.20508 likelihood(P0.5)C1060.560.54210∗0.510≈0.20508也就是说在 “10 次中有 6 次正面朝上” 这个事件发生的条件下“硬币正面朝上的概率 P 为 0.5” 的似然度是 0.2 左右。 注意这不是说 “6 次正面朝上” 的概率是 0.2 左右而是 “在 6 次正面朝上” 的结果下P0.5 的似然度可能性是 0.2这两者并没有直接关系。 说过啦这个数值本身不重要重要的是和其它 P 值的似然度的比较。
再来看看 P0.6公式 l i k e l i h o o d ( P 0.6 ) C 10 6 0. 6 6 0. 4 4 ≈ 0.25082 likelihood(P0.6) C_{10}^{6}0.6^{6}0.4^{4} ≈ 0.25082 likelihood(P0.6)C1060.660.44≈0.25082也就是说 “硬币正面朝上的概率 P 为 0.6” 的似然度是 0.25高于 P5 时换言之P0.6 比 P0.5 时更有可能出现当前结果。
那么 P0.7 呢答案是 0.20012 左右不如 P0.6 的时候。并且根据二项分布的图像后几篇里会讲P0.8、0.9 等等的时候似然度只会继续降低。
代码实现
嗯但是我们肯定不可能把所有的 P 值的情况都算一遍so 代码 可视化走起
# 似然函数——可视化
import numpy as np
import matplotlib.pyplot as plt
import math# 定义似然函数
# n实验次数k成功次数p成功概率
def likelihood(n, k, p):# 组合数 * 一种符合要求的情况的概率return math.comb(n, k) * (p ** k) * ((1-p) ** (n-k))# 生成自变量成功概率也就是参数的取值范围
x np.linspace(0, 1, 100)
# 计算对应的因变量似然的取值
y [likelihood(10, 6, i) for i in x]# 绘制曲线图
plt.plot(x, y)
plt.title(Likelihood Function)
plt.xlabel(P)
plt.ylabel(Likelihood)
plt.show()x\dfrac{-b\pm \sqrt{b^{2}-4ac}}{2a}.
结果图如下红线是似然函数值最大的参数大概在 0.6 左右。也就是说在当前结果下“P 0.6” 是最有可能的参数它最能解释当前的结果。 图应该就清晰多了。总而言之关于似然函数下面这些是重点 似然函数的自变量是参数它衡量的是在某种结果下某种参数的合理性或这种参数出现的可能性。似然函数本身的值并不重要重要的是哪种参数的似然函数最大。一般而言似然函数最大的参数对模型的解释性最强。
极大似然估计
好终于把似然和似然函数讲完了我感觉讲的挺明白的接下来来看一个重要的应用——极大似然估计。
极大似然估计英文全称 Maximum Likelihood Estimation简称 MLE。
一句话概括核心思想已经发生的事情发生的概率大。 好好好这句话的确说的奇奇怪怪的不过解释完你就懂了~ 假设我们现在在训练一个模型我们知道一堆样本 X ( X 1 , X 2 , . . . , X n ) X(X_1, X_2, ... , X_n) X(X1,X2,...,Xn)它们的观测值分别为 x ( x 1 , x 2 , . . . , x n ) x(x_1, x_2, ..., x_n) x(x1,x2,...,xn)啊对我觉得还是规范一下书写比较好要不然写着写着就乱了我们的目标就是给这个模型找到参数。 那么什么样的参数最好呢这不用问了我们肯定要求参数对训练集的解释性强即参数可以让模型较好的拟合训练集因为要是连训练集都拟合不好还怎么泛化。所以我们要选择似然函数值最大的那个或那组参数。这个过程就被称为极大似然估计。换言之极大似然估计就是利用已知的样本及结果信息反推最有可能让这些结果出现的模型参数值。
用数学表达就是 θ a r g m a x θ L ( X x ∣ θ ) \theta argmax\ {\theta} \ L(Xx|\theta) θargmax θ L(Xx∣θ)
数学推导
不用抛硬币的例子了二项分布不如正态分布好理解我们用正态分布来举例吧。 关于正态分布在线性回归原理那一篇中有讲过后面还会再开一篇讲分布这里不再细说。 我们假设有一堆样本其值服从正态分布也就是说我们可以用一个正态曲线去拟合它们我们要做的是找到这个正态曲线的平均值和标准差。 换言之我们要找到一组平均值和标准差它们描述的正态曲线可以最好地拟合已知样本。 怎么办yesyes极大似然估计嘛我们让似然函数最大就 ok
根据上一部分讲的公式似然函数是 L ( μ , σ 2 ∣ x ) P ( x ∣ μ , σ 2 ) f ( x 1 , x 2 , . . . , x n ∣ μ , σ 2 ) ∏ i 1 n f ( x i ∣ μ , σ 2 ) L(\mu, \sigma^2|x) P(x|\mu, \sigma^2) f(x_1, x_2, ... , x_n|\mu, \sigma^2) \prod \limits_{i1}^nf(x_i|\mu, \sigma^2) L(μ,σ2∣x)P(x∣μ,σ2)f(x1,x2,...,xn∣μ,σ2)i1∏nf(xi∣μ,σ2)再根据正态分布的概率密度函数进一步得到 l i k e l i h o o d ∏ i 1 n f ( x i ∣ μ , σ 2 ) ∏ i 1 n 1 2 π σ e − ( x i − μ ) 2 2 σ 2 likelihood \prod \limits_{i1}^nf(x_i|\mu, \sigma^2) \prod \limits_{i1}^n\frac{1}{\sqrt{2\pi}\sigma}{\rm e}^{-\frac{(x_i-\mu)^2}{2\sigma^2}} likelihoodi1∏nf(xi∣μ,σ2)i1∏n2π σ1e−2σ2(xi−μ)2我们要求的就是等号最右边那个式子的最大值
emm 不过局势目前并不太好因为连乘算起来好麻烦。。。 好吧好吧怎么把乘法变成加法呢或许 log a M log a N log a ( M N ) \log_a M\log_a N \log_a (MN) logaMlogaNloga(MN) 会给你一点启发——没错我们可以在等式两边同时取对数呀并且让似然函数最大和让似然函数的对数最大是等价的。 插一句通过取对数把连乘的式子转换为求和的形式这种方法很常用。
有了 ln \ln ln 的帮助没错这叫对数似然函数式子变成了下面这样 ln ( l i k e l i h o o d ) ∑ i 1 n ln ( 1 σ 2 π e − ( x i − μ ) 2 2 σ 2 ) \ln(likelihood) \sum^n_{i1}\ln \left( \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x_i-\mu)^2}{2\sigma^2}} \right) ln(likelihood)i1∑nln(σ2π 1e−2σ2(xi−μ)2)
进一步化简得到 ln ( l i k e l i h o o d ) ∑ i 1 n ln 1 − ∑ i 1 n ln ( σ 2 π ) ∑ i 1 n ln e − ( x i − μ ) 2 2 σ 2 \ln(likelihood) \sum^n_{i1}\ln 1 - \sum^n_{i1}\ln(\sigma \sqrt{2\pi}) \sum^n_{i1}\ln e^{-\frac{(x_i-\mu)^2}{2\sigma^2}} ln(likelihood)i1∑nln1−i1∑nln(σ2π )i1∑nlne−2σ2(xi−μ)2
那么最终结果就是 ln ( l i k e l i h o o d ) − n ln ( σ 2 π ) − ∑ i 1 n ( x i − μ ) 2 2 σ 2 \ln(likelihood) - n\ln(\sigma \sqrt{2\pi}) - \sum^n_{i1}\frac{(x_i-\mu)^2}{2\sigma^2} ln(likelihood)−nln(σ2π )−i1∑n2σ2(xi−μ)2
ok我们现在只需要让这个式子取得最大值就完美了~ 嗯怎么办老方法求偏导啊 先对平均值 μ \mu μ 求 ∂ ∂ μ ( − n ln ( 2 π σ ) − ∑ i 1 n ( x i − μ ) 2 2 σ 2 ) ∑ i 1 n 2 ( x i − μ ) 2 σ 2 ∑ i 1 n x i − μ σ 2 \frac{\partial}{\partial \mu} (-n\ln(\sqrt{2\pi}\sigma) - \sum_{i1}^n \frac{(x_i-\mu)^2}{2\sigma^2}) \\ \sum_{i1}^n \frac{2(x_i-\mu)}{2\sigma^2} \ \\ \sum_{i1}^n \frac{x_i-\mu}{\sigma^2} ∂μ∂(−nln(2π σ)−i1∑n2σ2(xi−μ)2)i1∑n2σ22(xi−μ) i1∑nσ2xi−μ
再对标准差 σ \sigma σ 求 噗哈哈哈我当时求这个的时候因为忘了 σ \sigma σ 在分母上所以有两次求出来的偏导的分母中的 σ \sigma σ 的次数是 1 啊呃呃呃。 ∂ ∂ σ ( − n ln ( 2 π σ ) − ∑ i 1 n ( x i − μ ) 2 2 σ 2 ) − n σ ∑ i 1 n ( x i − μ ) 2 σ 3 \frac{\partial}{\partial \sigma} (-n\ln(\sqrt{2\pi}\sigma) - \sum_{i1}^n \frac{(x_i-\mu)^2}{2\sigma^2}) \\ -\frac{n}{\sigma} \sum_{i1}^n \frac{(x_i-\mu)^2}{\sigma^3} ∂σ∂(−nln(2π σ)−i1∑n2σ2(xi−μ)2)−σni1∑nσ3(xi−μ)2
ok~偏导不难解出来结果如下 { ∂ ∂ μ ∑ i 1 n x i − μ σ 2 ∂ ∂ σ − n σ ∑ i 1 n ( x i − μ ) 2 σ 3 \left\{\begin{matrix} \frac{\partial}{\partial \mu} \sum_{i1}^n \frac{x_i-\mu}{\sigma^2} \\ \frac{\partial}{\partial \sigma} -\frac{n}{\sigma} \sum_{i1}^n \frac{(x_i-\mu)^2}{\sigma^3} \end{matrix}\right. {∂μ∂∑i1nσ2xi−μ∂σ∂−σn∑i1nσ3(xi−μ)2
回到最开始的目的——求似然函数的最大值嗯那就让两个偏导都等于 0 就 ok 了~~啊呃其实这里可以用二阶偏导小于 0 来说明确实是最大值不过我懒。。 也就是 { ∑ i 1 n x i − μ σ 2 0 − n σ ∑ i 1 n ( x i − μ ) 2 σ 3 0 \left\{\begin{matrix} \sum_{i1}^n \frac{x_i-\mu}{\sigma^2} 0 \\ -\frac{n}{\sigma} \sum_{i1}^n \frac{(x_i-\mu)^2}{\sigma^3} 0 \end{matrix}\right. {∑i1nσ2xi−μ0−σn∑i1nσ3(xi−μ)20
这两个很好解。 上面那个 μ \mu μ 就是 ∑ i 1 n x i ∑ i 1 n μ \sum_{i1}^n x_i \sum_{i1}^n \mu ∑i1nxi∑i1nμ解出 μ ∑ i 1 n x i n \mu \frac{\sum_{i1}^n x_i}{n} μn∑i1nxi也就是说 μ \mu μ 的极大似然估计就是这堆样本的平均值 怎么说你可能会想 μ \mu μ 这个东西本来不就是平均值吗我又用极大似然估计给它解出来一遍是干什么nonono μ \mu μ 本身表示的是正态曲线的平均值我们事先不知道正态曲线的平均值应该是多少的但是用极大似然估计推出来它就等于目前这些样本的平均值这正好反映了极大似然估计就是在 “把对当前结果拟合最优的参数选择为模型参数” 呀
下面那个 σ \sigma σ 就是 n ( x i − μ ) 2 σ 2 n \frac{(x_i-\mu)^2}{\sigma^2} nσ2(xi−μ)2解出来 σ ( x i − μ ) 2 n \sigma \sqrt{\frac{(x_i-\mu)^2}{n}} σn(xi−μ)2 也就是这堆样本的标准差。
那么如果不是正态分布而是其它任意一种形式的数据甚至有可能我们都不知道它是哪种形式的比如后面会讲的逻辑回归有没有一个 “通法” 呢 当然是有的啦
first我们得知道这个数据集应该用什么算法去拟合不知道就散点图看一下 or 多尝试几个比如到底是线性回归一元 or 多元还是逻辑回归 second每种算法都有一个带参数的式子比如多元线性回归是 y w 1 x 1 w 2 x 2 . . . w n x n b y w_1x_1 w_2x_2 ... w_nx_n b yw1x1w2x2...wnxnb按照之前给的那个 L ( θ ∣ x ) P ( x ∣ θ ) L(\theta|x) P(x|\theta) L(θ∣x)P(x∣θ)把 P ( x ∣ θ ) P(x|\theta) P(x∣θ) 的表达式写出来如果有需要再取个对数把连乘换成求和如果还有需要也可以把最大化问题转化为负数最小化问题负对数似然函数。 third求极值。方法很多最常规的就是对求和函数中的每一个参数分别求偏导令偏导等于 0解得每一个参数的值。也可以用梯度下降法、牛顿法等方法。
不过咳咳咳一般有内置函数的不过如果哪天你心血来潮想训练一下自己求偏导的水平其实这也不失为一个好方法bushi。
代码实现
我们用代码来实现一个正态分布曲线的极大似然估计。
import numpy as np
from scipy.stats import norm
from scipy.optimize import minimize# 生成一些正态分布的样本数据
np.random.seed(218) # 随机种子
mu_true 2.0 # 真实的均值
sigma_true 1.5 # 真实的标准差
sample_size 1000 # 样本数量
data np.random.normal(mu_true, sigma_true, sample_size)# 极大似然估计的目标函数
def neg_log_likelihood(params, data):负对数似然函数用于最小化参数- params包含均值和标准差的参数数组- data观测到的样本数据返回- 负对数似然函数的值mu, sigma params # 提取均值和标准差ll -np.sum(norm.logpdf(data, locmu, scalesigma)) # 计算负对数似然函数值return ll# 初始参数猜测值
initial_guess [1.0, 1.0] # 初始均值和标准差的猜测值
# 极大似然估计使用 L-BFGS-B 方法最小化负对数似然函数
result minimize(neg_log_likelihood, initial_guess, args(data,), methodL-BFGS-B)
# 提取估计得到的均值和标准差
mu_mle, sigma_mle result.x # 提取估计的均值和标准差
# 打印结果
print(真实均值, mu_true)
print(估计的均值, mu_mle)
print(真实标准差, sigma_true)
print(估计的标准差, sigma_mle)注释里面已经写的比较详细了这里再来解释一下吧~ 代码中的方法和我们推导的时候使用的方法有一点细微的差别但在思想上是一样的我在代码中计算的是负对数似然函数因为它可以直接使用 numpy 库中的 L-BFGS-B 算法进行最小化。 L-BFGS-B 算法是优化算法的一种类似的还有牛顿法等。 插一句numpy 这个库简直太 wonderful 了
来看一下结果极大似然估计的效果还是非常棒的 okkkk大功告成~虽然但是偏导也没那么难哈哈哈哈哈哈 ~ 这篇文章分析了似然函数和极大似然估计并给出了对应代码希望对你有所帮助⭐ 欢迎三连一起加油 ——Geeker_LStar
文章转载自: http://www.morning.prhfc.cn.gov.cn.prhfc.cn http://www.morning.hgtr.cn.gov.cn.hgtr.cn http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn http://www.morning.cokcb.cn.gov.cn.cokcb.cn http://www.morning.wfpmt.cn.gov.cn.wfpmt.cn http://www.morning.pttrs.cn.gov.cn.pttrs.cn http://www.morning.tqqfj.cn.gov.cn.tqqfj.cn http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn http://www.morning.srbmc.cn.gov.cn.srbmc.cn http://www.morning.xdmsq.cn.gov.cn.xdmsq.cn http://www.morning.dmtwz.cn.gov.cn.dmtwz.cn http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn http://www.morning.ddtdy.cn.gov.cn.ddtdy.cn http://www.morning.kbyp.cn.gov.cn.kbyp.cn http://www.morning.zpfqh.cn.gov.cn.zpfqh.cn http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn http://www.morning.cfynn.cn.gov.cn.cfynn.cn http://www.morning.jyzxt.cn.gov.cn.jyzxt.cn http://www.morning.qmzwl.cn.gov.cn.qmzwl.cn http://www.morning.btns.cn.gov.cn.btns.cn http://www.morning.xnnpy.cn.gov.cn.xnnpy.cn http://www.morning.brwei.com.gov.cn.brwei.com http://www.morning.xnqjs.cn.gov.cn.xnqjs.cn http://www.morning.tsmcc.cn.gov.cn.tsmcc.cn http://www.morning.nhzxr.cn.gov.cn.nhzxr.cn http://www.morning.wyrsn.cn.gov.cn.wyrsn.cn http://www.morning.rrwft.cn.gov.cn.rrwft.cn http://www.morning.cwtrl.cn.gov.cn.cwtrl.cn http://www.morning.cjnfb.cn.gov.cn.cjnfb.cn http://www.morning.bpmdz.cn.gov.cn.bpmdz.cn http://www.morning.wblpn.cn.gov.cn.wblpn.cn http://www.morning.wtbzt.cn.gov.cn.wtbzt.cn http://www.morning.xwlhc.cn.gov.cn.xwlhc.cn http://www.morning.smj79.cn.gov.cn.smj79.cn http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn http://www.morning.rdpps.cn.gov.cn.rdpps.cn http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn http://www.morning.pxlql.cn.gov.cn.pxlql.cn http://www.morning.jzsgn.cn.gov.cn.jzsgn.cn http://www.morning.bxczt.cn.gov.cn.bxczt.cn http://www.morning.mgwdp.cn.gov.cn.mgwdp.cn http://www.morning.kwjyt.cn.gov.cn.kwjyt.cn http://www.morning.mqbzk.cn.gov.cn.mqbzk.cn http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn http://www.morning.ghzfx.cn.gov.cn.ghzfx.cn http://www.morning.nbdtdjk.cn.gov.cn.nbdtdjk.cn http://www.morning.hongjp.com.gov.cn.hongjp.com http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn http://www.morning.mdfxn.cn.gov.cn.mdfxn.cn http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.rcrfz.cn.gov.cn.rcrfz.cn http://www.morning.jpgfq.cn.gov.cn.jpgfq.cn http://www.morning.ssqwr.cn.gov.cn.ssqwr.cn http://www.morning.wrbf.cn.gov.cn.wrbf.cn http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn http://www.morning.pxrfm.cn.gov.cn.pxrfm.cn http://www.morning.nbpqx.cn.gov.cn.nbpqx.cn http://www.morning.lqklf.cn.gov.cn.lqklf.cn http://www.morning.jjnql.cn.gov.cn.jjnql.cn http://www.morning.tscsd.cn.gov.cn.tscsd.cn http://www.morning.flhnd.cn.gov.cn.flhnd.cn http://www.morning.tqgmd.cn.gov.cn.tqgmd.cn http://www.morning.rbylq.cn.gov.cn.rbylq.cn http://www.morning.hkchp.cn.gov.cn.hkchp.cn http://www.morning.rqmr.cn.gov.cn.rqmr.cn http://www.morning.tjsxx.cn.gov.cn.tjsxx.cn http://www.morning.rysmn.cn.gov.cn.rysmn.cn http://www.morning.glncb.cn.gov.cn.glncb.cn http://www.morning.qnsmk.cn.gov.cn.qnsmk.cn http://www.morning.qfkxj.cn.gov.cn.qfkxj.cn http://www.morning.rtjhw.cn.gov.cn.rtjhw.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.qcygd.cn.gov.cn.qcygd.cn http://www.morning.ywqw.cn.gov.cn.ywqw.cn