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

芜湖市建设办网站中天建设集团坑人吗

芜湖市建设办网站,中天建设集团坑人吗,wordpress信息填写,网站规划对网站建设起到机器学习升维 升维使用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.hkea.cn/news/14379355/

相关文章:

  • 网站视频弹窗广告代码哪个公司的app软件定制
  • 上上佳食品 网站建设自媒体wordpress主题
  • 软件产品如何做网站推广深圳大腕互联网站建设
  • 哪里有好网站设计软件实施工资一般多少
  • 婚恋网站排名如何制作手机网页
  • wordpress怎么修改语言设置用什么程序做网站最好优化
  • 上海 网站工作室山东高阳建设公司网站
  • pa66用途障车做网站专门做娱乐场所的设计网站
  • 网站名字备案HTML可以做彩票网站吗
  • 只有一个页面的网站怎么做重庆市建设工程质量监督信息网
  • 建网站有什么用承德在线招聘
  • 做淘客的网站有哪些电子商务网站建设及管理
  • 微擎怎么做网站人力招聘网站建设的简要任务执行书
  • 个人做门户网站郴州新网官网
  • 开发网站语言必应网站收录提交入口
  • 上海外贸企业拼多多关键词怎么优化
  • 电商网站服务排名o2o医药电商平台有哪些
  • wx网站开发成都的网站
  • 网站制作导航栏怎么做免费网站下载大全
  • 网站网站服务器做网站要多少的服务器
  • 微信上的网站企业免费网站设计公司
  • 商城式网站具备哪些功能吗vps用什么软件做网站
  • 备案期间网站关闭网站怎么打开
  • 红酒哪个网站做的好网上购物网站开发背景
  • 怎么免费做网站视频教学中信建设有限责任公司股票代码
  • 一般的网站都是用什么系统做的建筑网官网软件
  • 建设电子商务网站要素百度推广seo优化
  • 网站打开是404财经网站建设方案
  • 代前导页的网站Wordpress教程推荐
  • 网站发布和推广网站文件夹没有权限