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

原江苏省建设厅网站搜索引擎营销案例分析题

原江苏省建设厅网站,搜索引擎营销案例分析题,门户网站什么意思举例子,网站内容要突出什么原因机器学习—实现多元线性回归 本节顺延机器学习--线性回归中的内容,进一步讨论多元函数的回归问题 y ′ h ( x ) w ⊤ ∙ x b y^{\prime}h(x)w^\top\bullet xb y′h(x)w⊤∙xb 其中, w T ⋅ x 就是 W 1 X 1 w 2 X 2 w 3 X 3 ⋯ w N X N \text{其中,}w^\math…

机器学习—实现多元线性回归

本节顺延机器学习--线性回归中的内容,进一步讨论多元函数的回归问题

y ′ = h ( x ) + w ⊤ ∙ x + b y^{\prime}=h(x)+w^\top\bullet x+b y=h(x)+wx+b
其中, w T ⋅ x 就是 W 1 X 1 + w 2 X 2 + w 3 X 3 + ⋯ + w N X N \text{其中,}w^\mathrm{T}\cdot x\text{就是}_{W_1X_1}+w_2X_2+w_3X_3+\cdots+w_NX_N 其中,wTx就是W1X1+w2X2+w3X3++wNXN

进一步按题目简化:
y ′ = h ( x ) = w 0 x 0 + w 1 x 1 + w 2 x 2 + w 3 x 3 y^{\prime}=h(x)=w_0x_0+w_1x_1+w_2x_2+w_3x_3 y=h(x)=w0x0+w1x1+w2x2+w3x3
其中 w 0 x 0 w_0x_0 w0x0为引入的偏置b

import numpy as np #导入NumPy数学工具箱
import pandas as pd #导入Pandas数据处理工具箱
#读入数据并显示前面几行的内容,确保已经成功的读入数据
#示例代码是在Kaggle中数据集中读入文件,如果在本机中需要指定具体本地路径
# 如,当数据集和代码文件位于相同本地目录,路径
#名应为'./advertising.csv',或直接放'advertising.csv'亦可
df_ads = pd.read_csv('/kaggle/input/online-store-sales-forecast-data/advertising.csv')
df_ads.head()
X = np.array(df_ads) # 构建特征集,含全部特征
X = np.delete(X, [3], axis = 1) # 删除掉标签
y = np.array(df_ads.sales) #构建标签集,销售金额
print ("张量X的阶:",X.ndim)
print ("张量X的形状:", X.shape)
print (X)

需要x和y都为2D向量

y = y.reshape(-1,1) #通过reshape函数把向量转换为矩阵,-1就是len(y),返回样本个数
print ("张量y的形状:", y.shape)

将数据集进行80%(训练集)和20%(验证集)的分割

# 将数据集进行80%(训练集)和20%(验证集)的分割
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

定义归一化函数 ,进行数据 压缩

def scaler(train, test): # 定义归一化函数 ,进行数据压缩    # 数据的压缩min = train.min(axis=0) # 训练集最小值max = train.max(axis=0) # 训练集最大值gap = max - min # 最大值和最小值的差train -= min # 所有数据减最小值train /= gap # 所有数据除以大小值差test -= min #把训练集最小值应用于测试集test /= gap #把训练集大小值差应用于测试集return train, test # 返回压缩后的数据
def min_max_gap(train): # 计算训练集最大,最小值以及他们的差,用于后面反归一化过程min = train.min(axis=0) # 训练集最小值max = train.max(axis=0) # 训练集最大值gap = max - min # 最大值和最小值的差return min, max, gapy_min, y_max, y_gap = min_max_gap(y_train)
X_train_original = X_train.copy() # 保留一份训练集数据副本,用于对要预测数据归一化
X_train,X_test = scaler(X_train,X_test) # 对特征归一化
y_train,y_test = scaler(y_train,y_test) # 对标签也归一化
x0_train = np.ones((len(X_train),1)) # 构造X_train长度的全1数组配合对Bias的点积
X_train = np.append(x0_train, X_train, axis=1) #把X增加一系列的1
x0_test = np.ones((len(X_test),1)) # 构造X_test长度的全1数组配合对Bias的点积
X_test = np.append(x0_test, X_test, axis=1) #把X增加一系列的1
print ("张量X的形状:", X_train.shape)
print (X_train)

通过向量化来实现损失函数

def loss_function(X, y, W): # 手工定义一个MSE均方误差函数,W此时是一个向量y_hat = X.dot(W.T) # 点积运算 h(x)=w_0*x_0 + w_1*x_1 + w_2*x_2 + w_3*x_3    loss = y_hat.reshape((len(y_hat),1))-y # 中间过程,求出当前W和真值的差异cost = np.sum(loss**2)/(2*len(X)) # 这是平方求和过程, 均方误差函数的代码实现return cost # 返回当前模型的均方误差值

w = w − α 2 N ∑ i = 1 N ( y ( i ) − ( w ∙ x ( i ) ) ) ∙ x ( i ) w=w-\frac{\alpha}{2N}\sum_{i=1}^N(y^{(i)}-(w\bullet x^{(i)}))\bullet x^{(i)} w=w2Nαi=1N(y(i)(wx(i)))x(i)

封装进一个梯度下降函数:

def gradient_descent(X, y, W, lr, iterations): # 定义梯度下降函数l_history = np.zeros(iterations) # 初始化记录梯度下降过程中损失的数组W_history = np.zeros((iterations,len(W))) # 初始化权重数组 for iter in range(iterations): # 进行梯度下降的迭代,就是下多少级台阶y_hat = X.dot(W.T) # 这个是向量化运行实现的假设函数   loss = y_hat.reshape((len(y_hat),1))-y # 中间过程, y_hat和y真值的差derivative_W = X.T.dot(loss)/len(X) #求出多项式的梯度向量derivative_W = derivative_W.reshape(len(W)) W = W - lr*derivative_W # 结合下降速率更新权重l_history[iter] = loss_function(X, y, W) # 损失的历史记录 W_history[iter] = W # 梯度下降过程中权重的历史记录return l_history, W_history # 返回梯度下降过程数据

初始化权重并训练机器

#首先确定参数的初始值
iterations = 300; # 迭代300次
alpha = 0.15; #学习速率设为0.15
weight = np.array([0.5,1,1,1]) # 权重向量,w[0] = bias
#计算一下初始值的损失
print ('当前损失:',loss_function(X_train, y_train, weight))
当前损失: 0.8039183733604858

构建线性回归模型

# 定义线性回归模型
def linear_regression(X, y, weight, alpha, iterations): loss_history, weight_history = gradient_descent(X, y, weight, alpha, iterations)print("训练最终损失:", loss_history[-1]) # 打印最终损失y_pred = X.dot(weight_history[-1]) # 进行预测traning_acc = 100 - np.mean(np.abs(y_pred - y))*100 # 计算准确率print("线性回归训练准确率: {:.2f}%".format(traning_acc))  # 打印准确率return loss_history, weight_history # 返回训练历史记录
# 调用刚才定义的线性回归模型
loss_history, weight_history = linear_regression(X_train, y_train,weight, alpha, iterations) #训练机器
训练最终损失: 0.002506723466186024
线性回归训练准确率: 75.67%
print("权重历史记录:", weight_history)
print("损失历史记录:", loss_history)

预测的数据

X_plan = [250,50,50] # 要预测的X特征数据
X_train,X_plan = scaler(X_train_original,X_plan) # 对预测数据也要归一化缩放
X_plan = np.append([1], X_plan ) # 加一个哑特征X0 = 1
y_plan = np.dot(weight_history[-1],X_plan) # [-1] 即模型收敛时的权重
# 对预测结果要做反向缩放,才能得到与原始广告费用对应的预测值
y_value = y_plan*y_gap + y_min # y_gap是当前y_train中最大值和最小值的差,y_min是最小值
print ("预计商品销售额: ",y_value, "千元") 
预计商品销售额:  [7.42162744] 千元
http://www.yayakq.cn/news/163597/

相关文章:

  • 网站建设模板套用免费网络课程平台
  • 网站建设科技公司外部环境分析seo职业技能培训班
  • 网站首页布局设计教程深圳建站模板购买
  • 学做标书的网站德州市建设街小学网站
  • 企业网站建设企业番禺建设网站报价
  • 为企业设计一个网站凤凰一级a做爰片免费网站
  • 网站维护合同深圳哪里有可以做网站跳转的公司
  • 网站制作青岛工程建设采购有哪些网站
  • 什么类型的网站比较容易做公司想做个自己的网站怎么做的
  • 彩票资讯网站建设公司建网站制作平台
  • wordpress好的博客主题手机优化师下载
  • 网站被做跳转企业展厅设计公司案例欣赏
  • 南同网站建设高端网站建设公司新鸿儒
  • 如何做链接淘宝客的网站合肥室内设计培训学校哪家好
  • 正规的网站制作哪个好ui界面设计培训班
  • 建设公司网站需要准备哪些材料广州代运营公司有哪些
  • 网站没收录了怎么办自己网上开店的步骤
  • 建网站得多少钱用dw制作网页步骤
  • 高端网站建设加盟专业的推广公司
  • 北京学设计去哪个网站好中小企业网站建设应该注意什么
  • 网站推广的主题wordpress文章进不去
  • 那些网站是做俄罗斯鞋子合肥建设管理学校网站
  • 拍卖网站建设公司竞拍网站模板
  • 网站飘落怎么做网站建设风格有哪些
  • 浅谈电子商务网站建设与管理论文帝国cms 商城网站视频教程
  • 菜鸟移动端网站开发最便宜的钱
  • 网站建设申请空间重庆做网站设计
  • 建设交流网站提高工作效率总结心得
  • 工商局网站实名认证怎么做深圳网站建设seo
  • 怎么开发游戏软件谷歌seo好做吗