网站建设的商业阶段,网站建设一键搭建,室内设计师联盟官网入口,淄博网站制作网络定制线性回归模型#xff08;7大模型#xff09;
线性回归是人工智能领域中最常用的统计学方法之一。在许多不同的应用领域中#xff0c;线性回归都是非常有用的#xff0c;例如金融、医疗、社交网络、推荐系统等等。
在机器学习中#xff0c;线性回归是最基本的模型之一7大模型
线性回归是人工智能领域中最常用的统计学方法之一。在许多不同的应用领域中线性回归都是非常有用的例如金融、医疗、社交网络、推荐系统等等。
在机器学习中线性回归是最基本的模型之一也是许多其他模型的基础。在深度学习中线性回归模型可以用作神经网络的基础例如单层感知器模型。
线性回归模型也有许多改进和扩展版本例如多元线性回归、逻辑回归、岭回归、lasso回归、弹性网回归等等。这些模型可以更好地处理实际应用中的不同情况例如多个自变量、非线性关系、高维度数据等等。
本章节主要从以下四个环节进行介绍线性回归模型主要详细介绍7大模型。
一、什么是线性回归
二、为什么使用线性回归
三、回归技术的类型
四、如何选择正确的回归模型
一、什么是线性回归
1. 线性入门
先从一个简单的问题开始如何用一个线性函数来拟合一个二维数据集
假设我们有一个二维数据集其中每个样本都由一个x和一个y组成。我们可以用一个线性函数 y ax b 来拟合这个数据集其中a和b是待定的系数。我们的目标是找到最佳的a和b使得这个线性函数能够尽可能地拟合这个数据集。
这就是线性回归的基本思想通过拟合一个线性函数来预测一个连续型的输出变量。这是一个非常简单的案例。线性回归在实际应用中应用非常广泛线性回归可以用于许多不同的任务比如预测销售额、房价、股票价格等。
2. 什么是回归分析
回归分析是一种统计学方法用于研究自变量和因变量之间的关系。它是一种建立关系模型的方法可以帮助我们预测和解释变量之间的相互作用。回归分析通常用于预测一个或多个因变量的值这些因变量的值是由一个或多个自变量的值所决定的。回归分析的目标是建立一个数学模型来描述因变量和自变量之间的关系。这个数学模型可以是线性或非线性的可以包含一个或多个自变量。通过回归分析我们可以使用已知的自变量和因变量值来计算模型参数然后使用这些参数来预测因变量值。回归分析被广泛应用于各种领域包括经济学、社会学、医学、环境科学和工程学等。它可以用于研究许多不同的问题如房价预测、销售预测、股票价格预测、人口增长预测等等。
回归分析是建模和分析数据的重要工具。在这里我们使用曲线/线来拟合这些数据点在这种方式下从曲线或线到数据点的距离差异最小。我会在接下来的部分详细解释这一点。
二、为什么使用线性回归
举例理解
上述已经说了回归分析估计了两个或者多个变量之间的关系由一个简单的例子进行下一步的加深理解
比如说在当前的经济条件下你要估计一家公司的销售额增长情况。现在你有公司最新的数据这些数据显示出销售额增长大约是经济增长的2.5倍。那么使用回归分析我们就可以根据当前和过去的信息来预测未来公司的销售情况。
根据上述例子我们可以得到以下信息 我们可以将销售额的增长率定义为销售额增长率 公司销售额增长 / 经济增长 销售额增长大约是经济增长的2.5倍。因此我们可以将上述式子转化为销售额增长率 2.5
现在我们可以使用历史数据来拟合这个模型然后使用该模型来预测未来的销售额增长情况。如果我们发现公司的销售额增长率偏离了预测值我们可以重新调整模型并进行更新。
但是需要注意的是
回归分析是一种统计学方法它基于历史数据和一些假设来进行预测。因此在使用回归分析进行预测时我们需要谨慎地考虑这些假设以及历史数据是否足够可靠和全面。
三、回归技术的类型
在统计学和机器学习领域中回归分析有许多不同的技术和方法。以下是我归类的7种主要类型下面来一一介绍每种回归技术。
1. ElasticNet回归
1.1 简介
ElasticNet回归是回归分析中的一种线性模型结合了Lasso回归和岭回归的特点。与Lasso回归一样ElasticNet回归可以实现特征选择和模型稀疏性即通过将某些系数缩减为0选择最相关的特征。与岭回归一样ElasticNet回归可以处理多重共线性问题即在输入特征之间存在高度相关性的情况下仍然能够对模型进行合理的拟合。 ElasticNet回归在建立模型时同时考虑L1正则项和L2正则项这两个正则项的系数可以通过调整超参数来控制。L1正则项可以实现特征选择和稀疏性L2正则项可以处理多重共线性问题通过结合这两个正则项可以得到更加稳定、可靠的模型。
ElasticNet回归适用于许多实际应用中的问题例如图像处理、基因表达数据分析等这些问题通常具有高维度、高相关性等特点而ElasticNet回归能够在这些复杂的场景中同时实现特征选择和模型稳定性。
1.2 要点和优点 要点 1.在高度相关变量的情况下它会产生群体效应 2.选择变量的数目没有限制 3.它可以承受双重收缩。 优点 Lasso和Ridge之间的实际的优点是它允许ElasticNet继承循环状态下Ridge的一些稳定性。 1.3 ElasticNet回归案例
from sklearn.linear_model import ElasticNet
from sklearn.datasets import make_regression# 生成随机数据集
X, y make_regression(n_samples100, n_features10, noise0.1, random_state42)# 创建ElasticNet回归模型
elastic_net ElasticNet(alpha0.1, l1_ratio0.5, max_iter1000)# 模型拟合训练数据
elastic_net.fit(X, y)# 输出模型参数
print(Coefficients:, elastic_net.coef_)
print(Intercept:, elastic_net.intercept_)
print(R-squared:, elastic_net.score(X, y)) 这个代码案例中我们使用make_regression函数生成了一个包含100个样本、10个特征的随机数据集然后创建了一个ElasticNet回归模型并通过fit方法对模型进行训练。最后我们输出了模型的系数、截距和R平方值。可以通过调整alpha和l1_ratio参数来控制L1和L2正则项的比例。
2. Lasso Regression套索回归
2.1 简介
Lasso Regression套索回归是一种用于回归分析的机器学习算法它主要用于特征选择和模型正则化可以帮助解决多重共线性和过拟合等问题。Lasso Regression通过加入L1正则化项将一些特征的系数缩小甚至归零从而达到特征选择的目的同时可以避免过拟合。
它类似于岭回归Lasso Least Absolute Shrinkage and Selection Operator也会惩罚回归系数的绝对值大小。此外它能够减少变化程度并提高线性回归模型的精度。看看下面的公式 2.2 要点和优点 要点 1.除常数项以外这种回归的假设与最小二乘回归类似 2.它收缩系数接近零等于零这确实有助于特征选择 3.这是一个正则化方法使用的是L1正则化 如果预测的一组变量是高度相关的Lasso 会选出其中一个变量并且将其它的收缩为零。 优点它可以处理高维数据并且能够自动减少不重要的特征从而简化模型提高预测准确性。另外它的结果也比较容易解释可以帮助我们理解哪些特征对目标变量的影响最大。 2.3 代码案例
from sklearn.linear_model import Lasso
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 加载数据集
boston load_boston()# 数据预处理
X boston.data
y boston.target
X StandardScaler().fit_transform(X)# 划分数据集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state0)# 创建Lasso Regression模型并训练
lasso Lasso(alpha0.1)
lasso.fit(X_train, y_train)# 输出模型得分
print(Training set score: {:.2f}.format(lasso.score(X_train, y_train)))
print(Test set score: {:.2f}.format(lasso.score(X_test, y_test)))在这个示例中我们使用了Boston房价数据集进行回归分析首先对数据进行预处理然后划分训练集和测试集。接着我们使用Lasso Regression创建了一个模型并设置了alpha参数为0.1这个参数控制着正则化的强度。最后我们输出了模型在训练集和测试集上的得分来评估模型的性能。
3. Ridge Regression岭回归
3.1 简介
Ridge Regression岭回归是一种用于回归分析的机器学习算法它可以帮助解决多重共线性和过拟合等问题。Ridge Regression通过加入L2正则化项限制了特征系数的平方和从而使得模型更加稳定。
岭回归分析是一种用于存在多重共线性自变量高度相关数据的技术。在多重共线性情况下尽管最小二乘法OLS对每个变量很公平但它们的差异很大使得观测值偏移并远离真实值。岭回归通过给回归估计上增加一个偏差度来降低标准误差。
yab*x这个方程也有一个误差项。完整的方程是 yab*xe (error term), [error term is the value needed to correct for a prediction error between the observed and predicted value]yay a b1x1 b2x2....e, for multiple independent variables.在一个线性方程中预测误差可以分解为2个子分量。一个是偏差一个是方差。预测错误可能会由这两个分量或者这两个中的任何一个造成。在这里我们将讨论由方差所造成的有关误差。
岭回归通过收缩参数λlambda解决多重共线性问题。看下面的公式 3.2 要点和优点 要点 1.除常数项以外这种回归的假设与最小二乘回归类似 2.它收缩了相关系数的值但没有达到零这表明它没有特征选择功能 3.这是一个正则化方法并且使用的是L2正则化。 优点 Ridge Regression的优点在于它可以处理高维数据并且能够有效地减少不必要的特征从而简化模型提高预测准确性。另外它的结果也比较容易解释可以帮助我们理解哪些特征对目标变量的影响最大。 3.3 代码案例
from sklearn.linear_model import Ridge
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 加载数据集
boston load_boston()# 数据预处理
X boston.data
y boston.target
X StandardScaler().fit_transform(X)# 划分数据集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state0)# 创建Ridge Regression模型并训练
ridge Ridge(alpha0.1)
ridge.fit(X_train, y_train)# 输出模型得分
print(Training set score: {:.2f}.format(ridge.score(X_train, y_train)))
print(Test set score: {:.2f}.format(ridge.score(X_test, y_test)))
4. Stepwise Regression逐步回归
4.1 简介
Stepwise Regression逐步回归是一种基于特征选择的回归分析方法它可以在给定的一组特征中选择出最佳的子集并利用这个子集来建立回归模型。Stepwise Regression可以通过逐步添加和删除变量逐步优化模型从而得到更加准确和有效的结果。
Stepwise Regression通常分为前向和后向两种方法前向方法从空模型开始逐步添加特征而后向方法则从包含所有特征的完整模型开始逐步删除特征。在每一步中模型的性能都会被评估并且选择具有最佳性能的特征进行添加或删除。
下面列出了一些最常用的逐步回归方法
标准逐步回归法做两件事情。即增加和删除每个步骤所需的预测。向前选择法从模型中最显著的预测开始然后为每一步添加变量。向后剔除法与模型的所有预测同时开始然后在每一步消除最小显着性的变量。
这种建模技术的目的是使用最少的预测变量数来最大化预测能力。这也是处理高维数据集的方法之一。
4.2 代码案例
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from mlxtend.feature_selection import SequentialFeatureSelector as SFS# 加载数据集
boston load_boston()# 划分数据集
X_train, X_test, y_train, y_test train_test_split(boston.data, boston.target, test_size0.3, random_state0)# 创建线性回归模型
linreg LinearRegression()# 创建前向Stepwise Regression模型并训练
sfs_forward SFS(linreg,k_features5,forwardTrue,scoringneg_mean_squared_error,cv5)
sfs_forward.fit(X_train, y_train)# 输出最佳特征组合
print(Best feature subset:, sfs_forward.k_feature_idx_)
在这个示例中我们使用了Boston房价数据集进行回归分析首先划分训练集和测试集然后创建了一个线性回归模型。接着我们使用了mlxtend库中的SequentialFeatureSelector类来实现前向Stepwise Regression并设置了k_features参数为5表示最终选择5个特征。最后我们输出了最佳特征组合的索引可以用于重新训练模型或进行特征重要性分析。
5. Polynomial Regression多项式回归
5.1 基本介绍
Polynomial Regression多项式回归是一种基于线性回归的扩展方法它可以建立非线性关系的回归模型。与线性回归不同的是多项式回归可以通过添加多项式项例如平方项、立方项等来拟合非线性数据。
在多项式回归中输入特征不仅可以是原始特征还可以是这些特征的多项式项。例如在一元多项式回归中我们可以使用以下模型 在这种回归技术中最佳拟合线不是直线。而是一个用于拟合数据点的曲线。 5.2 重点 重点 虽然会有一个诱导可以拟合一个高次多项式并得到较低的错误但这可能会导致过拟合。你需要经常画出关系图来查看拟合情况并且专注于保证拟合合理既没有过拟合又没有欠拟合。 6. Logistic Regression逻辑回归
6.1 简介
逻辑回归Logistic Regression是一种分类算法用于预测二元变量的结果。它通过将数据拟合到S形的逻辑函数也称为sigmoid函数来进行分类。逻辑回归是一种广泛应用于机器学习和数据分析的算法通常用于二元分类问题如信用评分、客户离职预测、疾病诊断等。它可以将输入特征与目标变量之间的关系建模为概率并根据阈值将数据分类为两个类别。
逻辑回归是用来计算“事件Success”和“事件Failure”的概率。当因变量的类型属于二元1 / 0真/假是/否变量时我们就应该使用逻辑回归。这里Y的值从0到1它可以用下方程表示。 odds p/ (1-p) probability of event occurrence / probability of not event occurrenceln(odds) ln(p/(1-p))logit(p) ln(p/(1-p)) b0b1X1b2X2b3X3....bkXk
p表述具有某个特征的概率6.2 要点 要点 1.它广泛的用于分类问题。 2.逻辑回归不要求自变量和因变量是线性关系。它可以处理各种类型的关系因为它对预测的相对风险指数OR使用了一个非线性的log转换。 3.为了避免过拟合和欠拟合我们应该包括所有重要的变量。有一个很好的方法来确保这种情况就是使用逐步筛选方法来估计逻辑回归。 4.它需要大的样本量因为在样本数量较少的情况下极大似然估计的效果比普通的最小二乘法差。 5.自变量不应该相互关联的即不具有多重共线性。然而在分析和建模中我们可以选择包含分类变量相互作用的影响。 6.如果因变量的值是定序变量则称它为序逻辑回归。 7.如果因变量是多类的话则称它为多元逻辑回归。 代码案例
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_classification# 生成示例数据集
X, y make_classification(n_samples1000, n_features4, n_informative2, n_redundant0, random_state42)# 将数据集拆分为训练和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)# 创建逻辑回归模型
model LogisticRegression()# 在训练集上训练模型
model.fit(X_train, y_train)# 在测试集上测试模型
accuracy model.score(X_test, y_test)
print(Accuracy:, accuracy)
在这个代码示例中我们首先使用Scikit-Learn的make_classification函数生成了一个示例数据集。然后我们将数据集拆分为训练集和测试集并创建了一个逻辑回归模型。最后我们在训练集上训练模型并在测试集上测试模型的准确率。
7. Linear Regression线性回归
7.1简介
线性回归Linear Regression是一种基本的统计学习方法通常用于建立两个或多个变量之间的线性关系。它是通过将自变量与因变量之间的关系建模为线性方程然后根据数据拟合出这个线性方程的系数从而进行预测和分析的一种方法。线性回归广泛应用于金融、医疗、自然资源等多个领域可以用于预测商品价格、销售量、股票价格等。
具体来说线性回归通过找到一个最佳的拟合线来描述两个变量之间的关系。这个拟合线可以表示为一条直线的方程即y mx b。其中y是因变量x是自变量m是斜率b是截距。斜率代表了因变量y在自变量x上的变化率截距代表了当自变量为0时因变量的值。
线性回归的目标是通过最小化实际值和预测值之间的误差来找到最佳的拟合线。这个误差可以使用最小二乘法来计算。
用一个方程式来表示它即Yab*Xe其中a表示截距b表示直线的斜率e是误差项。这个方程可以根据给定的预测变量s来预测目标变量的值。 7.2 如何获得最佳拟合线a和b的值
这个问题可以使用最小二乘法轻松地完成。最小二乘法也是用于拟合回归线最常用的方法。对于观测数据它通过最小化每个数据点到线的垂直偏差平方和来计算最佳拟合线。因为在相加时偏差先平方所以正值和负值没有抵消。 我们可以使用R-square指标来评估模型性能。想了解这些指标的详细信息可以阅读模型性能指标Part 1,Part 2.
7.3 要点 要点 1.自变量与因变量之间必须有线性关系 2.多元回归存在多重共线性自相关性和异方差性。 3.线性回归对异常值非常敏感。它会严重影响回归线最终影响预测值。 4.多重共线性会增加系数估计值的方差使得在模型轻微变化下估计非常敏感。结果就是系数估计值不稳定 5.在多个自变量的情况下我们可以使用向前选择法向后剔除法和逐步筛选法来选择最重要的自变量。 7.4 代码案例
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_regression# 生成示例数据集
X, y make_regression(n_samples1000, n_features4, noise0.1, random_state42)# 将数据集拆分为训练和测试集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42)# 创建线性回归模型
model LinearRegression()# 在训练集上训练模型
model.fit(X_train, y_train)# 在测试集上测试模型
score model.score(X_test, y_test)
print(Score:, score)
在这个代码示例中我们首先使用Scikit-Learn的make_regression函数生成了一个示例数据集。然后我们将数据集拆分为训练集和测试集并创建了一个线性回归模型。最后我们在训练集上训练模型并在测试集上测试模型的准确率。
四、如何正确选择回归模型
在多类回归模型中基于自变量和因变量的类型数据的维数以及数据的其它基本特征的情况下选择最合适的技术非常重要。以下是你要选择正确的回归模型的关键因素 数据探索是构建预测模型的必然组成部分。在选择合适的模型时比如识别变量的关系和影响时它应该首选的一步。 比较适合于不同模型的优点我们可以分析不同的指标参数如统计意义的参数R-squareAdjusted R-squareAICBIC以及误差项另一个是Mallows’ Cp准则。这个主要是通过将模型与所有可能的子模型进行对比或谨慎选择他们检查在你的模型中可能出现的偏差。 交叉验证是评估预测模型最好额方法。在这里将你的数据集分成两份一份做训练和一份做验证。使用观测值和预测值之间的一个简单均方差来衡量你的预测精度。 如果你的数据集是多个混合变量那么你就不应该选择自动模型选择方法因为你应该不想在同一时间把所有变量放在同一个模型中。 它也将取决于你的目的。可能会出现这样的情况一个不太强大的模型与具有高度统计学意义的模型相比更易于实现。 回归正则化方法LassoRidge和ElasticNet在高维和数据集变量之间多重共线性情况下运行良好。 文章转载自: http://www.morning.51meihou.cn.gov.cn.51meihou.cn http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn http://www.morning.ssjtr.cn.gov.cn.ssjtr.cn http://www.morning.lbpfl.cn.gov.cn.lbpfl.cn http://www.morning.lhgqc.cn.gov.cn.lhgqc.cn http://www.morning.btypn.cn.gov.cn.btypn.cn http://www.morning.rgpbk.cn.gov.cn.rgpbk.cn http://www.morning.lwlnw.cn.gov.cn.lwlnw.cn http://www.morning.lpmjr.cn.gov.cn.lpmjr.cn http://www.morning.fpngg.cn.gov.cn.fpngg.cn http://www.morning.mnsmb.cn.gov.cn.mnsmb.cn http://www.morning.xkyfq.cn.gov.cn.xkyfq.cn http://www.morning.gkpgj.cn.gov.cn.gkpgj.cn http://www.morning.fndmk.cn.gov.cn.fndmk.cn http://www.morning.bbxbh.cn.gov.cn.bbxbh.cn http://www.morning.fyxtn.cn.gov.cn.fyxtn.cn http://www.morning.mrlls.cn.gov.cn.mrlls.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.wcqkp.cn.gov.cn.wcqkp.cn http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.qdsmile.cn.gov.cn.qdsmile.cn http://www.morning.jcypk.cn.gov.cn.jcypk.cn http://www.morning.snzgg.cn.gov.cn.snzgg.cn http://www.morning.kkwbw.cn.gov.cn.kkwbw.cn http://www.morning.fhwfk.cn.gov.cn.fhwfk.cn http://www.morning.zlces.com.gov.cn.zlces.com http://www.morning.qfkxj.cn.gov.cn.qfkxj.cn http://www.morning.mynbc.cn.gov.cn.mynbc.cn http://www.morning.djpgc.cn.gov.cn.djpgc.cn http://www.morning.ynstj.cn.gov.cn.ynstj.cn http://www.morning.zffn.cn.gov.cn.zffn.cn http://www.morning.wmglg.cn.gov.cn.wmglg.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.hdscx.cn.gov.cn.hdscx.cn http://www.morning.zsleyuan.cn.gov.cn.zsleyuan.cn http://www.morning.qcbhb.cn.gov.cn.qcbhb.cn http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn http://www.morning.mspkz.cn.gov.cn.mspkz.cn http://www.morning.ghxzd.cn.gov.cn.ghxzd.cn http://www.morning.kbqqn.cn.gov.cn.kbqqn.cn http://www.morning.frfnb.cn.gov.cn.frfnb.cn http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn http://www.morning.rwbx.cn.gov.cn.rwbx.cn http://www.morning.mgbcf.cn.gov.cn.mgbcf.cn http://www.morning.jzsgn.cn.gov.cn.jzsgn.cn http://www.morning.prgrh.cn.gov.cn.prgrh.cn http://www.morning.nlgmr.cn.gov.cn.nlgmr.cn http://www.morning.cykqg.cn.gov.cn.cykqg.cn http://www.morning.ltqzq.cn.gov.cn.ltqzq.cn http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn http://www.morning.dkfrd.cn.gov.cn.dkfrd.cn http://www.morning.lpppg.cn.gov.cn.lpppg.cn http://www.morning.jwxnr.cn.gov.cn.jwxnr.cn http://www.morning.zdydj.cn.gov.cn.zdydj.cn http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com http://www.morning.dwzwm.cn.gov.cn.dwzwm.cn http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn http://www.morning.njntp.cn.gov.cn.njntp.cn http://www.morning.wflsk.cn.gov.cn.wflsk.cn http://www.morning.zhghd.cn.gov.cn.zhghd.cn http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn http://www.morning.pqsys.cn.gov.cn.pqsys.cn http://www.morning.smygl.cn.gov.cn.smygl.cn http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn http://www.morning.myzfz.com.gov.cn.myzfz.com http://www.morning.snnwx.cn.gov.cn.snnwx.cn http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn http://www.morning.wmyqw.com.gov.cn.wmyqw.com http://www.morning.nmkbl.cn.gov.cn.nmkbl.cn http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn http://www.morning.wpydf.cn.gov.cn.wpydf.cn http://www.morning.kjcll.cn.gov.cn.kjcll.cn http://www.morning.zhmgcreativeeducation.cn.gov.cn.zhmgcreativeeducation.cn http://www.morning.bfybb.cn.gov.cn.bfybb.cn http://www.morning.kwfnt.cn.gov.cn.kwfnt.cn http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn http://www.morning.hrrmb.cn.gov.cn.hrrmb.cn