当前位置: 首页 > wzjs >正文

上市公司网站建设报价青岛seo精灵

上市公司网站建设报价,青岛seo精灵,施工企业管理杂志官网,wordpress 添加插件目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型构建 八、模型预测 九、模型评价 一、数据及分析对象 CSV格式的数据文件——“Advertising.csv” 数据集链接:https://download.csdn.net/d…

目录

一、数据及分析对象

二、目的及分析任务

三、方法及工具

四、数据读入

五、数据理解

六、数据准备

七、模型构建

八、模型预测

九、模型评价


一、数据及分析对象

CSV格式的数据文件——“Advertising.csv”

数据集链接:https://download.csdn.net/download/m0_70452407/88520033

数据集包含了200个不同市场的产品销售额,每个销售额对应3中广告媒体投入成本,分别是TV、radio和newspaper,主要属性如下:

(1)Number:数据集的编号。

(2)TV:电视媒体的广告投入。

(3)radio:广播媒体的广告投入。

(4)newspaper:报纸媒体的广告投入。

(5)sales:商品的销量

二、目的及分析任务

理解机器学习方法在数据分析中的应用——采用多元回归方法进行回归分析。

(1)数据预处理,绘制TV、radio、newspaper这3个自变量与因变量sales的相关关系图。

(2)采用两种不同方法进行多元回归分析——统计学方法和机器学习方法。

(3)进行模型预测,得出模型预测结果。

(4)对预测结果进行评价。

三、方法及工具

Python语言及pandas、Seaborn、matplotlib、statsmodels、scikit-learn等包。

四、数据读入

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import os
data=pd.read_csv("D:\\Download\\JDK\\数据分析理论与实践by朝乐门_机械工业出版社\\第3章 回归分析\\Advertising.csv")
data.head()

五、数据理解

对数据框进行探索性分析,这里采用的实现方式为调用Seaborn包中的pairplot()方法,绘制TV、radio、newspaper这3个变量与sales变量之间的关系图,其中kind参数设置为“reg"。为非对角线上的散点图拟合出一条回归直线,可以更直观地显示变量之间的关系,height参数为7,aspect参数为0.8,表明每个构面的高度为7,宽高比为0.8。调用matplotlib.pyplot.show()方法显示图形。

sns.pairplot(data,x_vars=['TV','radio','newspaper'],y_vars='sales',height=7,aspect=0.8,kind='reg')
plt.show()

六、数据准备

进行多元回归分析前,应准备好模型所需的特征矩阵(X)和目标向量(y)。这里采用drop()方法删除数据框data中的Number以及sales两列返回另一个DataFrame对象Data,并显示Data数据集,即特征矩阵的前5行数据。

#第一步:构建特征矩阵和目标数组
Data=data.drop(['Number','sales'],axis=1)
Data.head()

确定目标向量sales为data数据框中的sales列,并显示其数据类型:

sales=data['sales']
type(sales)
pandas.core.series.Series

输出结果显示了sales的数据类型为pandas的Series。

将目标向量sales的数据转换为NumPy中的ndarray,这里采用的实现方法为调用NumPy包中的ravel()方法返回数组。

import numpy as np
sales=np.ravel(sales)
type(sales)
numpy.ndarray

 输出结果显示sales的数据类型为NumPy的ndarray数组对象。

七、模型构建

采用统计学方法,检验模型的线性显著性。在这里调用statsmodels统计建模工具包,通过statsmodels.api(基于数组)接口进行访问。采用add_constant()方法加上一列常数项,反映线性回归模型的截距。采用OLS()方法用最小二乘法来建立myModel模型。采用模型的fit()方法返回一个回归结果对象results,该对象results包含了估计的模型参数和其他的诊断。在results上调用summary()方法可以打印出一个模型的诊断细节。

#第一种分析方法——基于统计学的建模
import statsmodels.api as sm
X_add_const=sm.add_constant(Data.to_numpy())
myModel=sm.OLS(sales,X_add_const)
results=myModel.fit()
print(results.summary())
OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.897
Model:                            OLS   Adj. R-squared:                  0.896
Method:                 Least Squares   F-statistic:                     570.3
Date:                Thu, 09 Nov 2023   Prob (F-statistic):           1.58e-96
Time:                        20:01:27   Log-Likelihood:                -386.18
No. Observations:                 200   AIC:                             780.4
Df Residuals:                     196   BIC:                             793.6
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
==============================================================================coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          2.9389      0.312      9.422      0.000       2.324       3.554
x1             0.0458      0.001     32.809      0.000       0.043       0.049
x2             0.1885      0.009     21.893      0.000       0.172       0.206
x3            -0.0010      0.006     -0.177      0.860      -0.013       0.011
==============================================================================
Omnibus:                       60.414   Durbin-Watson:                   2.084
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              151.241
Skew:                          -1.327   Prob(JB):                     1.44e-33
Kurtosis:                       6.332   Cond. No.                         454.
==============================================================================Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

重点考虑参数R-squared、Prob(F-statistic)以及P>|t|的两个值,通过这4个参数就能判断模型是否线性显著,同时知道显性的程度。

其中,R-squared(决定系数)=SSR/SST,取值范围为[0,1],其值越接近1,说明回归效果越好。在这里,R-squared的值为0.897,接近于1,说明回归效果好。F-statistic(F检验)的值越大越能推翻原假设,原假设是“我们的模型不是线性模型”。Prob(F-statistic)是F-statistic的概率,这个值越小越能拒绝原假设,这里为1.58e-96,该值非常小,足以证明是线性显著的。

接着,采用机器学习的方法再进行建模,以便进行两者的对比分析。为了采用机器学习方法,需要拆分训练集和测试机。在这里通过调用sklearn.model_selection中的train_test_split()方法进行训练姐和测试集的拆分,random_state为1,采用25%的数据测试,75%的数据训练。

#第二种分析方法——基于机器学习
#拆分训练集和测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(Data,sales,random_state=1,test_size=0.25)

查看训练数据和测试数据的数量:

#查看训练数据和测试数据的数量
print(X_train.shape)
print(X_test.shape)
(150, 3)
(50, 3)

在训练集上训练模型。这里调用sklearn.linear_model中默认参数的LinearRegression对训练集进行线性回归。

from sklearn.linear_model import LinearRegression
linreg=LinearRegression()
model=linreg.fit(X_train,y_train)
print(model)
LinearRegression()

 在此基础上,查看多元线性回归模型的回归系数:

model.coef_
array([0.04656457, 0.17915812, 0.00345046])

 查看回归模型的截距:

model.intercept_
2.8769666223179335

 最后,调用score()方法返回预测的R-squared(决定系数),即模型的准确率:

#准确率
model.score(X_test,y_test)
0.9156213613792232

八、模型预测

采用predict()方法使用线性模型进行预测,返回模型的预测结果y_pred:

y_pred=linreg.predict(X_test)
y_pred
array([21.70910292, 16.41055243,  7.60955058, 17.80769552, 18.6146359 ,23.83573998, 16.32488681, 13.43225536,  9.17173403, 17.333853  ,14.44479482,  9.83511973, 17.18797614, 16.73086831, 15.05529391,15.61434433, 12.42541574, 17.17716376, 11.08827566, 18.00537501,9.28438889, 12.98458458,  8.79950614, 10.42382499, 11.3846456 ,14.98082512,  9.78853268, 19.39643187, 18.18099936, 17.12807566,21.54670213, 14.69809481, 16.24641438, 12.32114579, 19.92422501,15.32498602, 13.88726522, 10.03162255, 20.93105915,  7.44936831,3.64695761,  7.22020178,  5.9962782 , 18.43381853,  8.39408045,14.08371047, 15.02195699, 20.35836418, 20.57036347, 19.60636679])

九、模型评价

对预测结果评价,这里采用matplotlib.pyplot的plot()函数绘制预测结果与真实值图,两条线分别表示模型预测值和观察值。

import matplotlib.pyplot as plt
plt.figure()
plt.plot(range(len(y_pred)),y_pred,'b',label="predict")
plt.plot(range(len(y_pred)),y_test,'r',label="test")
plt.legend(loc="upper right")
plt.xlabel("the number of sales")
plt.ylabel("value of sales")
plt.show()

从运行结果可以看出,预测结果与真实值的折线趋于重合,此结果说明模型的预测结果较好。 

http://www.dtcms.com/wzjs/69256.html

相关文章:

  • 深圳南山做网站的公司百度旗下产品
  • 许昌市住房和城乡建设厅网站百度浏览器下载安装
  • 租网站需要多少钱网页设计成品源代码
  • 怎么做返利网之类的网站谷歌seo网站推广怎么做优化
  • 电脑可以做网站服务器么全网最低价24小时自助下单平台
  • 鹰潭市网站建设公司营销网店推广的软文
  • 三大电商平台是哪三个优化大师是干什么的
  • 美工网站设计网络营销和网站推广的区别
  • 软装设计师培训机构优化网络的软件
  • 广州网站搭建多少钱如何提升百度关键词排名
  • 合肥市城乡建设委员网站湛江百度seo公司
  • 网站制作和app制作软文发布的平台与板块
  • 网站页面用什么软件做微博营销策略
  • wordpress menu css标题优化
  • wordpress安装主题失败广州网页seo排名
  • 一般网站的宽度是多少上海seo推广方法
  • 网站做前端营销策划公司的经营范围
  • 企业网站建站 合肥百度信息流推广和搜索推广
  • 网站推广要怎样做网络营销常用的工具有哪些
  • 重庆多语网站建设品牌企业宣传网站怎么做
  • 做美食网站的意义网站怎么优化排名
  • 猪八戒网做动漫弹幕网站关键词竞价排名名词解释
  • 做访问的公司网站近期舆情热点事件
  • 网页设计与制作教程 机械工业出版社苏州首页排名关键词优化
  • ai绘制logo标题优化方法
  • 工程网站怎么做如何优化百度seo排名
  • 怎么在网上做客服更先进的seo服务
  • 口碑营销的定义技术教程优化搜索引擎整站
  • 如何推广qq群免费seo优化工具
  • 网站建设方案书一定要有吗惠州seo公司