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

做的网站怎么上传网络营销推广方案思路

做的网站怎么上传,网络营销推广方案思路,北京建站模板厂家,html网页制作代码加图机器学习升维 升维使用sklearn库实现特征升维实现天猫年度销量预测实现中国人寿保险预测 升维 定义#xff1a;将原始的数据表示从低维空间映射到高维空间。在线性回归中#xff0c;升维通常是通过引入额外的特征来实现的#xff0c;目的是为了更好地捕捉数据的复杂性#… 机器学习升维 升维使用sklearn库实现特征升维实现天猫年度销量预测实现中国人寿保险预测 升维 定义将原始的数据表示从低维空间映射到高维空间。在线性回归中升维通常是通过引入额外的特征来实现的目的是为了更好地捕捉数据的复杂性特别是当数据之间的关系是非线性的时候。 目的解决欠拟合问题提高模型的准确率。为解决因对预测结果考虑因素比较少而无法准确计算出模型参数问题。 常用方法将已知维度进行自乘或相乘来构建新的维度。 本文主要记录的是线性回归中遇到数据呈现非线性特征时该如何处理 切记对训练集特征升维后也要对测试集、验证集特征数据进行升维操作 数据准备如下 如果对其直接进行线性回归则拟合后的模型如下 从上述两图可知对于具有非线性特征的图像不对其使用特使的处理则无法对其产生比较好的模型拟合。 上述图像生成代码 # 导包 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 创建数据 X np.linspace(-1,11,100) y (X - 5)**2 3*X 12 np.random.randn(100) X X.reshape(-1,1) # display(X.shape,y.shape) plt.scatter(X,y)# 不升维直接用线性回归解决 model LinearRegression() model.fit(X,y) X_test np.linspace(-2,12,300).reshape(-1,1) y_test model.predict(X_test) plt.scatter(X,y) plt.plot(X_test,y_test,color red)为了使得可以对具有非线性特征的数据进行处理生成一个较好的模型可是实现预测的任务于是便有了升维操作下举例升维和不升维的区别 不升维二维数据x1, x2若不对其进行升维操作则其拟合的多元线性回归公式为: y w 1 ∗ x 1 w 2 ∗ x 2 w 0 y w_1*x_1 w_2*x_2 w_0 yw1​∗x1​w2​∗x2​w0​ 升维若对二维数据x1x2进行升维操作则其可有5个维度以自乘为例x1、x2、x12x22、x1*x2在加上一个偏置项w0一共有六个参数则其拟合后的多元线性回归公式为 y w 0 w 1 ∗ x 1 w 2 ∗ x 2 w 3 ∗ x 1 2 w 4 ∗ x 2 2 w 5 ∗ x 1 ∗ x 2 y w_0w_1*x_1w_2*x_2w_3*x_1^2w_4*x_2^2w_5*x_1*x_2 yw0​w1​∗x1​w2​∗x2​w3​∗x12​w4​∗x22​w5​∗x1​∗x2​ 若这样则由原本的一维线性方程转换成了二维函数最直观的表现则原本的数据集则可以拟合成下图所示的模型 上图生成代码如下 # 导包 import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression X np.linspace(-1,11,100) y (X - 5)**2 3*X 12 np.random.randn(100) X X.reshape(-1,1)# 升维可以解决多项式的问题直观表现为可以让直线进行拐弯 np.set_printoptions(suppressTrue) X2 np.concatenate([X,X**2], axis 1) # 注只需要对特征进行升维不需要对目标值进行升维# 生成测试数据 X_test np.linspace(-2,12,300).reshape(-1,1) model2 LinearRegression() model2.fit(X2,y) X_test2 np.concatenate([X_test,X_test**2],axis1) y_test2 model2.predict(X_test2) print(所求的w是\n,model2.coef_) print(所求的截距b是\n,model2.intercept_)# 绘制图像的时候要用没升维的数据进行绘制 plt.scatter(X,y,colorgreen) plt.plot(X_test,y_test2,color red)使用sklearn库实现特征升维 在sklearn中具有很多封装好的工具可以直接调用。 from sklearn.preprocessing import PolynomialFeatures # 多项式升维的python库 使用方法: # 特征和特征之间相乘 poly PolynomialFeatures(interaction_onlyTrue) A [[3,2]] poly.fit_transform(A) # 生成结果array([[1., 3., 2., 6.]])#特征之间乘法自己和自己自乘在上述情况下加上自己的乘法 poly PolynomialFeatures(interaction_onlyFalse) A [[3,2,5]] poly.fit_transform(A) # 生成结果array([[ 1., 3., 2., 5., 9., 6., 15., 4., 10., 25.]])# 可以通过degree来提高升维的大小 poly PolynomialFeatures(degree4,interaction_onlyFalse)# 特征和特征之间相乘 A [[3,2,5]] poly.fit_transform(A) # 生成结果: # array([[ 1., 3., 2., 5., 9., 6., 15., 4., 10., 25., 27., # 18., 45., 12., 30., 75., 8., 20., 50., 125., 81., 54., # 135., 36., 90., 225., 24., 60., 150., 375., 16., 40., 100., # 250., 625.]])实现天猫年度销量预测 实现代码 import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures,StandardScaler from sklearn.linear_model import LinearRegression,SGDRegressor# 创建数据 X np.arange(2009,2020).reshape(-1,1) - 2008 y np.array([0.5,9.36,52,191,350,571,912,1207,1682,2135,2684]) plt.scatter(X,y) # 创建测试数据 X_test np.linspace(2009,2020,100).reshape(-1,1) - 2008# 数据升维 ploy PolynomialFeatures(degree2, interaction_onlyFalse) X2 ploy.fit_transform(X) X_test2 ploy.fit_transform(X_test)# 模型创建LinearRegression model LinearRegression(fit_interceptFalse) model.fit(X2,y) y_pred model.predict(X_test2) print(参数w为,model.coef_) print(参数b为,model.intercept_)plt.scatter(X,y,colorgreen) plt.plot(X_test,y_pred,colorred)# 使用SGD进行梯度下降,必须要归一化,否则效果会非常不好 # 创建测试数据 X_test np.linspace(2009,2019,100).reshape(-1,1) - 2008# 数据升维 ploy PolynomialFeatures(degree2, interaction_onlyFalse) X2 ploy.fit_transform(X) X_test2 ploy.fit_transform(X_test)#对数据进行归一化操作 standard StandardScaler() X2_norm standard.fit_transform(X2) X_test2_norm standard.fit_transform(X_test2)# 模型创建SGDRegression model SGDRegressor(eta00.3, max_iter5000) model.fit(X2_norm,y) y_pred model.predict(X_test2_norm) print(参数w为,model.coef_) print(参数b为,model.intercept_)plt.scatter(X,y,colorgreen) plt.plot(X_test,y_pred,colorred)这里需要说明一下情况如果第二段代码不进行归一化则呈现的是下图 如果进行了归一化则产生的和法一LinearRegession是一样的图形基本相同 这是什么原因 线性回归Linear Regression和随机梯度下降SGD在处理特征尺度不同的问题上有一些不同之处导致线性回归相对于特征尺度的敏感性较低。SGD的更新规则涉及学习率η和梯度。如果不同特征的尺度相差很大梯度的大小也会受到这种尺度差异的影响。因此在引入高次项或其他非线性特征需要注意特征的尺度避免数值上的不稳定性。SGD中的正则化项通常依赖于权重的大小。通过归一化可以使得正则化项对所有特征的影响更加平衡。 实现中国人寿保险预测 import pandas as pd import seaborn as sns import numpy as np from sklearn.linear_model import LinearRegression,ElasticNet from sklearn.metrics import mean_squared_error,mean_squared_log_error from sklearn.model_selection import train_test_split from sklearn.preprocessing import PolynomialFeatures# 读取数据 data_renshou pd.read_excel(your_path/中国人寿.xlsx) # 可以通过下式生成图像查看那些数据是好数据那些是不好的数据——好特征差别大容易区分 #sns.kdeplot(datadata_renshou, xcharges,huesex,shadeTrue) #sns.kdeplot(datadata_renshou, xcharges,huesmoker,shadeTrue) #sns.kdeplot(datadata_renshou, xcharges,hueregion,shadeTrue) #sns.kdeplot(datadata_renshou, xcharges,huechildren,shadeTrue)# 特征工程对数据进行处理 data_renshou data_renshou.drop([region,sex],axis 1) # 删除不好的特征# 体重指数离散化转换体重两种情况标准fat def conver(df,bmi):df[bmi] fat if df[bmi] bmi else standardreturn df data_renshou data_renshou.apply(conver, axis1,args(30,))# 特征提取离散转数值型数据 data_renshou pd.get_dummies(data_renshou) data_renshou.head()#特征和目标值提取 # 训练数据 x data_renshou.drop(charges, axis1) # 目标值 y data_renshou[charges]# 划分数据 X_train,X_test,y_train,y_test train_test_split(x,y,test_size0.2)# 特征升维(导致了他下面的参数biandu) poly PolynomialFeatures(degree2, include_biasFalse) X_train_poly poly.fit_transform(X_train) X_test_poly poly.fit_transform(X_test) # 模型训练与评估 np.set_printoptions(suppressTrue) model LinearRegression() model.fit(X_train_poly,y_train) print(测试数据得分,model.score(X_train_poly,y_train)) print(预测数据得分,model.score(X_test_poly,y_test)) print(测试数据均方误差,np.sqrt(mean_squared_error(y_test,model.predict(X_test_poly)))) print(训练数据均方误差,np.sqrt(mean_squared_error(y_train,model.predict(X_train_poly)))) print(测试数据对数误差,np.sqrt(mean_squared_log_error(y_test,model.predict(X_test_poly)))) print(训练数据对数误差,np.sqrt(mean_squared_log_error(y_train,model.predict(X_train_poly)))) print(获得的参数为,model.coef_.round(2),model.intercept_.round(2))
http://www.w-s-a.com/news/787821/

相关文章:

  • 建设工程监理网站前端和后端分别需要学什么
  • 公司网站制作效果国内最好的在线网站建设
  • 徐州好点的做网站的公司有哪些wordpress 工具插件下载
  • 如何用云服务器建设网站微网站免费开发平台
  • 官网的网站设计公司做网站需要准备哪些东西
  • 程序员和做网站那个好找工作wordpress二维码 插件
  • 湖南城市建设技术学院官方网站青海省建设局网站
  • 响应式网站有什么区别百度网站官网
  • 金华企业自助建站系统长沙建站公司模板
  • 云主机 做网站友情链接网站
  • 定制型网站设计天津网站模板建站
  • 为什么公司网站打开很慢wordpress汉化插件
  • 用dw做教学网站做网站用什么配置笔记本
  • 秦皇岛网站制作服务无网站无产品链接如何做SOHO
  • 国际婚恋网站做翻译合法吗南宁网络推广有限公司
  • 济南做网站公司排名销售市场规划方案
  • 营销型网站定制珠海建站网站
  • 企业网站代码wordpress页面重定向循环
  • 厦门网站建设哪家便宜用wordpress做企业网站
  • 网站备案有幕布python 做网站速度
  • 旅游网站模板psd网站后台维护主要做什么
  • 晋江做任务的网站网站如何设置关键词
  • 呼伦贝尔网站建设呼伦贝尔ps网页设计心得体会
  • 字母logo设计网站动画设计方案及内容
  • 怎样做网站建设方案wordpress 附件预览
  • 网站内容编辑wordpress cron原理
  • 户外商品网站制作建筑网络图片
  • 注册了网站怎么建设做网站是学什么专业
  • 济南建设网站哪里好网站色哦优化8888
  • 什么网站做简历最好外贸公司网站大全