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

网站的成本进行网站建设视频教程

网站的成本,进行网站建设视频教程,wordpress的mysql扩展,嘉兴提高网站排名添加原始数据的交互特征#xff08;interaction feature#xff09;和多项式特征#xff08;polynomial feature#xff09;可以丰富特征表示#xff0c;特别是对于线性模型。这种特征工程可以用统计建模和许多实际的机器学习应用中。 上一次学习#xff1a;线性模型对w…添加原始数据的交互特征interaction feature和多项式特征polynomial feature可以丰富特征表示特别是对于线性模型。这种特征工程可以用统计建模和许多实际的机器学习应用中。 上一次学习线性模型对wave数据集中的每个箱子都学到一个常数值。但我们知道线性模型不仅可以学习偏移还可以学习斜率。想要向分箱数据上的线性模型添加斜率一种方法是重新加入原始特征。这样会得到11维的数据集如下代码 import numpy as np import mglearn import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #from sklearn.tree import DecisionTreeRegressor #from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import KBinsDiscretizerX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)# 生成10个箱子 #kb KBinsDiscretizer(n_bins10, strategyuniform) #kb.fit(X)kb KBinsDiscretizer(n_bins10, strategyuniform, encodeonehot-dense) kb.fit(X) #X_binned kb.transform(X) # 记录每个数据点所属的箱子。 X_binned kb.transform(X) line_binned kb.transform(line)# 加入原始特征 X_combined np.hstack([X, X_binned]) print(X_combined.shape)reg LinearRegression().fit(X_combined, y)line_combined np.hstack([line, line_binned]) plt.plot(line, reg.predict(line_combined), labellinear regression combined) plt.vlines(kb.bin_edges_[0], -3, 3, linewidth1, alpha.2) plt.legend(locbest) plt.ylabel(Regression output) plt.xlabel(Input feature) plt.plot(X[:, 0], y, o, ck) plt.show() 输出结果(100, 11) 输出图形 输出的图形是使用分箱特征和单一全局斜率的线性回归。 在这个例子中模型在每个箱子中都学到一个偏移还学到一个斜率。学到的斜率是向下的并且在所有箱子中都相同——只有一个x轴特征也就只有一个斜率。因为斜率在所有箱子中是相同的所以它似乎不是很有用。我们更希望每个箱子都有一个不同的斜率。为了实现这一点我们可以添加交互特征或乘积特征用来表示数据点所在的箱子以及数据点在x轴上的位置。这个特征是箱子指示符与原始特征的乘积。下面来创建数据集 import numpy as np import mglearn #import matplotlib.pyplot as plt #from sklearn.linear_model import LinearRegression #from sklearn.tree import DecisionTreeRegressor #from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import KBinsDiscretizerX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)# 生成10个箱子 #kb KBinsDiscretizer(n_bins10, strategyuniform) #kb.fit(X)kb KBinsDiscretizer(n_bins10, strategyuniform, encodeonehot-dense) kb.fit(X) #X_binned kb.transform(X) # 记录每个数据点所属的箱子。 X_binned kb.transform(X) line_binned kb.transform(line)# 加入原始特征 X_combined np.hstack([X, X_binned]) #print(X_combined.shape)line_combined np.hstack([line, line_binned])# 创建数据集 X_product np.hstack([X_binned, X * X_binned]) print(X_product.shape) 输出(100, 20)  。这个数据集现在有20个特征数据点所在箱子的指示符与原始特征和箱子指示符的乘积。可以将乘积特征看作每个箱子x轴特征的单独副本。它在箱子内等于原始特征在其他 位置等于零。下面我们代码绘图给出线性模型在这种新表示上的结果 import numpy as np import mglearn import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #from sklearn.tree import DecisionTreeRegressor #from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import KBinsDiscretizerX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)# 生成10个箱子 #kb KBinsDiscretizer(n_bins10, strategyuniform) #kb.fit(X)kb KBinsDiscretizer(n_bins10, strategyuniform, encodeonehot-dense) kb.fit(X) #X_binned kb.transform(X) # 记录每个数据点所属的箱子。 X_binned kb.transform(X) line_binned kb.transform(line)# 加入原始特征 X_combined np.hstack([X, X_binned]) #print(X_combined.shape)# 创建数据集 X_product np.hstack([X_binned, X * X_binned]) #print(X_product.shape)reg LinearRegression().fit(X_product, y)line_product np.hstack([line_binned, line * line_binned])plt.plot(line, reg.predict(line_product), labellinear regression product) plt.vlines(kb.bin_edges_[0], -3, 3, linewidth1, alpha.2) plt.plot(X[:, 0], y, o, ck) plt.ylabel(Regression output) plt.xlabel(Input feature) plt.legend(locbest) plt.show() 输出图形 上图显示每个箱子具有不同的偏移和斜率。使用分箱是扩展连续特征的一种方法。另一种方法是 使用原始特征的多项式polynomial。对于给定特征x我们可以考虑x ** 2、x ** 3、x ** 4等等。这在preprocessing模块的PolynomialFeatures中实现 import numpy as np import mglearn import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #from sklearn.tree import DecisionTreeRegressor #from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import KBinsDiscretizer from sklearn.preprocessing import PolynomialFeaturesX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)# 生成10个箱子 #kb KBinsDiscretizer(n_bins10, strategyuniform) #kb.fit(X)kb KBinsDiscretizer(n_bins10, strategyuniform, encodeonehot-dense) kb.fit(X) #X_binned kb.transform(X) # 记录每个数据点所属的箱子。 X_binned kb.transform(X) line_binned kb.transform(line)# 加入原始特征 X_combined np.hstack([X, X_binned]) #print(X_combined.shape)# 创建数据集 #X_product np.hstack([X_binned, X * X_binned]) #print(X_product.shape)# 包含直到x ** 10的多项式: # 默认的include_biasTrue添加恒等于1的常数特征 poly PolynomialFeatures(degree10, include_biasFalse) poly.fit(X) X_poly poly.transform(X) # 多项式的次数为 10因此生成10个特征 print(X_poly.shape: {}.format(X_poly.shape)) 输出X_poly.shape: (100, 10) 比较X_ploy和X的元素 import numpy as np import mglearn import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #from sklearn.tree import DecisionTreeRegressor #from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import KBinsDiscretizer from sklearn.preprocessing import PolynomialFeaturesX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)# 生成10个箱子 #kb KBinsDiscretizer(n_bins10, strategyuniform) #kb.fit(X)kb KBinsDiscretizer(n_bins10, strategyuniform, encodeonehot-dense) kb.fit(X) #X_binned kb.transform(X) # 记录每个数据点所属的箱子。 X_binned kb.transform(X) line_binned kb.transform(line)# 加入原始特征 X_combined np.hstack([X, X_binned]) #print(X_combined.shape)# 创建数据集 #X_product np.hstack([X_binned, X * X_binned]) #print(X_product.shape)# 包含直到x ** 10的多项式: # 默认的include_biasTrue添加恒等于1的常数特征 poly PolynomialFeatures(degree10, include_biasFalse) poly.fit(X) X_poly poly.transform(X) # 多项式的次数为 10因此生成10个特征 print(X_poly.shape: {}.format(X_poly.shape))# 比较 X_poly 和 X 的元素 print(Entries of X:\n{}.format(X[:5])) print(Entries of X_poly:\n{}.format(X_poly[:5])) 输出 Entries of X: [[-0.75275929]  [ 2.70428584]  [ 1.39196365]  [ 0.59195091]  [-2.06388816]] Entries of X_poly: [[-7.52759287e-01  5.66646544e-01 -4.26548448e-01  3.21088306e-01   -2.41702204e-01  1.81943579e-01 -1.36959719e-01  1.03097700e-01   -7.76077513e-02  5.84199555e-02]  [ 2.70428584e00  7.31316190e00  1.97768801e01  5.34823369e01    1.44631526e02  3.91124988e02  1.05771377e03  2.86036036e03    7.73523202e03  2.09182784e04]  [ 1.39196365e00  1.93756281e00  2.69701700e00  3.75414962e00    5.22563982e00  7.27390068e00  1.01250053e01  1.40936394e01    1.96178338e01  2.73073115e01]  [ 5.91950905e-01  3.50405874e-01  2.07423074e-01  1.22784277e-01    7.26822637e-02  4.30243318e-02  2.54682921e-02  1.50759786e-02    8.92423917e-03  5.28271146e-03]  [-2.06388816e00  4.25963433e00 -8.79140884e00  1.81444846e01   -3.74481869e01  7.72888694e01 -1.59515582e02  3.29222321e02   -6.79478050e02  1.40236670e03]] 我们可以通过调用 get_feature_names_out 方法来获取特征的语义给出每个特征的指数 import numpy as np import mglearn import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #from sklearn.tree import DecisionTreeRegressor #from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import KBinsDiscretizer from sklearn.preprocessing import PolynomialFeaturesX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)# 生成10个箱子 #kb KBinsDiscretizer(n_bins10, strategyuniform) #kb.fit(X)kb KBinsDiscretizer(n_bins10, strategyuniform, encodeonehot-dense) kb.fit(X) #X_binned kb.transform(X) # 记录每个数据点所属的箱子。 X_binned kb.transform(X) line_binned kb.transform(line)# 加入原始特征 X_combined np.hstack([X, X_binned]) #print(X_combined.shape)# 创建数据集 #X_product np.hstack([X_binned, X * X_binned]) #print(X_product.shape)# 包含直到x ** 10的多项式: # 默认的include_biasTrue添加恒等于1的常数特征 poly PolynomialFeatures(degree10, include_biasFalse) poly.fit(X) X_poly poly.transform(X) # 多项式的次数为 10因此生成10个特征 print(X_poly.shape: {}.format(X_poly.shape))# 比较 X_poly 和 X 的元素 print(Entries of X:\n{}.format(X[:5])) print(Entries of X_poly:\n{}.format(X_poly[:5]))#调用 get_feature_names_out 方法来获取特征的语义给出每个特征的指数 print(Polynomial feature names:\n{}.format(poly.get_feature_names_out())) 输出 Polynomial feature names: [x0 x0^2 x0^3 x0^4 x0^5 x0^6 x0^7 x0^8 x0^9 x0^10] 可以看到X_poly 的第一列与 X 完全对应而其他列则是第一列的幂。有趣的是可以发现有些值非常大。第二行有大于 20000 的元素数量级与其他行都不相同。将多项式特征与线性回归模型一起使用可以得到经典的多项式回归polynomial regression模型见如下代码实现 import numpy as np import mglearn import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression #from sklearn.tree import DecisionTreeRegressor #from sklearn.preprocessing import OneHotEncoder from sklearn.preprocessing import KBinsDiscretizer from sklearn.preprocessing import PolynomialFeaturesX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)# 生成10个箱子 #kb KBinsDiscretizer(n_bins10, strategyuniform) #kb.fit(X)kb KBinsDiscretizer(n_bins10, strategyuniform, encodeonehot-dense) kb.fit(X) #X_binned kb.transform(X) # 记录每个数据点所属的箱子。 X_binned kb.transform(X) #line_binned kb.transform(line)# 加入原始特征 X_combined np.hstack([X, X_binned]) #print(X_combined.shape)# 创建数据集 #X_product np.hstack([X_binned, X * X_binned]) #print(X_product.shape)# 包含直到x ** 10的多项式: # 默认的include_biasTrue添加恒等于1的常数特征 poly PolynomialFeatures(degree10, include_biasFalse) poly.fit(X) X_poly poly.transform(X) # 多项式的次数为 10因此生成10个特征 #print(X_poly.shape: {}.format(X_poly.shape))# 比较 X_poly 和 X 的元素 #print(Entries of X:\n{}.format(X[:5])) #print(Entries of X_poly:\n{}.format(X_poly[:5]))#调用 get_feature_names 方法来获取特征的语义给出每个特征的指数 #print(Polynomial feature names:\n{}.format(poly.get_feature_names_out()))reg LinearRegression().fit(X_poly, y)line_poly poly.transform(line) plt.plot(line, reg.predict(line_poly), labelpolynomial linear regression) plt.plot(X[:, 0], y, o, ck) plt.ylabel(Regression output) plt.xlabel(Input feature) plt.legend(locbest) plt.show() 输出图形 上图是具有 10 次多项式特征的线性回归。多项式特征在这个一维数据上得到了非常平滑的拟合。但高次多项式在边界上或数据很少的区域可能有极端的表现。作为对比下面是在原始数据上学到的核SVM模型没有做任何变换 import numpy as np import mglearn import matplotlib.pyplot as plt from sklearn.svm import SVRX, y mglearn.datasets.make_wave(n_samples100) line np.linspace(-3, 3, 1000, endpointFalse).reshape(-1, 1)for gamma in [1, 10]:svr SVR(gammagamma).fit(X, y)plt.plot(line, svr.predict(line), labelSVR gamma{}.format(gamma))plt.plot(X[:, 0], y, o, ck) plt.ylabel(Regression output) plt.xlabel(Input feature) plt.legend(locbest) plt.show() 输出图形对于RBF核的SVM使用不同 gamma 参数的对比 使用更加复杂的模型即核 SVM能够学到一个与多项式回归的复杂度类似的预测结果且不需要进行显式的特征变换。
http://www.dnsts.com.cn/news/14120.html

相关文章:

  • 广西建设厅微信网站在哪里可以看直播免费的
  • wordpress多站点优缺点跑腿公司怎么做网站
  • 南京玄武区建设局网站北京建网站开发
  • 网站建设初期怎么添加内容郑州官网优化推广
  • 招远网站建设北京百度网站排名优化
  • 做网站花多钱网站构建的一般流程是什么
  • 内蒙古两学一做网站长春网站建设模板样式
  • 重庆建设招标网站广告推广方案范文
  • 西城h5网站建设树苗网站源码
  • 网站功能是什么申请一个域名可以建设一个网站吗
  • 零基础自己做网站药监局网站建设方案
  • 保洁公司网站模板网络推广培训班培训机构
  • 网站后台都需要什么软件做wordpress govpress 汉化
  • 深圳网站制作公司资讯网站建设好还需投资吗
  • 云南省网站开发做短租有哪些网站
  • 制作的网站图片不显示沈阳营销型网站建设
  • 织梦示范网站优化设计方法
  • 校园内部网站建设方案python浪漫星空代码
  • 花茶网站设计建筑公司网站模板免费下载
  • 溧水区城乡建设局网站站群宝塔批量建站
  • 国际贸易电子商务网站建设流程建设部网站进不去
  • 建设银行e路通网站利用国外免费空间做网站
  • 建设电影播放网站邢台网站建设服务周到
  • 网站关键词优化建议临沂做网站的公司
  • 哪个网站可下载免费ppt做网站视频一般上传到哪里
  • 全站仪为什么要建站建一个网站的流程
  • 做视频导航网站有哪些无锡 公共建设中心网站
  • 建设医院网站ppt模板wordpress 分栏间距
  • 无锡装饰网站建设排名驻马店住房和城乡建设厅网站
  • 遵义网站制作外包网站自定义链接怎么做