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

做视频网站需要多大的带宽wordpress添加自动关键词内链

做视频网站需要多大的带宽,wordpress添加自动关键词内链,雅布设计作品,一个网站建设哪家快案例背景 博主对电脑的价格和配置一直略有研究#xff0c;正好最近也有笔记本电脑相关的数据#xff0c;想着来做点分析吧#xff0c;写成一个案例。基本上描述性统计#xff0c;画图#xff0c;分组聚合#xff0c;机器学习#xff0c;交叉验证#xff0c;搜索超参数…案例背景 博主对电脑的价格和配置一直略有研究正好最近也有笔记本电脑相关的数据想着来做点分析吧写成一个案例。基本上描述性统计画图分组聚合机器学习交叉验证搜索超参数那些。 数据介绍 这数据集室友给的很像kaggle上的数据集很规整如下 其中price是我们响应变量其他都是X时特征变量。 需要该演示数据和全部代码文件的同学可以参考 笔记本电脑 代码实现 数据分析四件套先导入 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as snsplt.rcParams [font.sans-serif] SimHei #显示中文 plt.rcParams [axes.unicode_minus]False #显示负号 读取数据展示前五行 dfpd.read_csv(laptop_data_cleaned.csv) df.head() 查看数据基础信息 df.info() 可以看到大概是13个变量1273条数据数据量不是很大。 简单整理一下变量的类别和含义的关系 查看非数值型变量的描述性统计 df.select_dtypes(exclude[int,float]).describe() 数值型变量的描述性统计 df.describe() 下面进行初步分析 类别变量画图 我们首先查看不同类别的变量的数量分布 # Select non-numeric columns non_numeric_columns df[[Company, TypeName, TouchScreen, Os,Cpu_brand,Gpu_brand , Ram,HDD, SSD] ].columns f, axes plt.subplots(3, 3, figsize(10,10),dpi128) # Flatten axes for easy iterating axes_flat axes.flatten() for i, column in enumerate(non_numeric_columns):if i 9: sns.countplot(xcolumn, datadf, axaxes_flat[i])axes_flat[i].set_title(fCount of {column})for label in axes_flat[i].get_xticklabels():label.set_rotation(90) #类别标签旋转一下免得多了堆叠看不清# Hide any unused subplots for j in range(i 1, 9):f.delaxes(axes_flat[j]) plt.tight_layout() plt.show() 公司 大多数笔记本电脑来自戴尔、联想和惠普品牌。 微软、三星等品牌的笔记本电脑较少。 类型名称 超极本和笔记本是最常见的类型。 游戏本、二合一本、可转换本和工作站类型较少。 触摸屏 大多数笔记本电脑没有触摸屏。 只有一小部分具有触摸屏功能。 操作系统 Windows 是最普遍的操作系统。 少数笔记本电脑使用 Mac 或其他操作系统。 处理器品牌 英特尔酷睿 i5 和英特尔酷睿 i7 是最常见的 CPU 品牌。 AMD 处理器和其他英特尔处理器不太常见。 Gpu的牌子 英特尔和 Nvidia GPU 最常用。 AMD GPU 不太常见。 内存 8GB 和 16GB 内存是最常见的配置。 配备 4GB 和 12GB 内存的笔记本电脑较少。 机械硬盘 大多数笔记本电脑没有机械硬盘或机械硬盘容量较小32GB。 少数笔记本电脑的机械硬盘容量较大128GB、500GB、1000GB、2000GB。 固态硬盘 最常见的固态硬盘容量为 256GB 和 512GB。 也有一些笔记本电脑配备 128GB 或更大容量的固态硬盘最高可达 1024GB。 关键结论 数据表明人们偏好某些品牌和配置戴尔、联想和惠普是热门选择。超极本和笔记本是主流类型这可能是由于它们的多功能性和市场需求。Windows 操作系统比 Mac 和其他操作系统更受欢迎。英特尔 CPU尤其是酷睿 i5 和 i7在市场上占据主导地位而 AMD 则不太常见。与 AMD 相比Nvidia GPU 更受青睐。8GB 和 16GB 内存的趋势表明这些内存被认为是性能最佳的内存。与硬盘相比固态硬盘更受青睐相当多的笔记本电脑采用 256GB 至 512GB 的固态硬盘。 数值型变量画图 画密度图 #画密度图 num_columns df[[Weight, Price,Ppi]].columns.tolist() # 列表头 dis_cols 3 #一行几个 dis_rows len(num_columns) plt.figure(figsize(3 * dis_cols, 2 * dis_rows),dpi256)for i in range(len(num_columns)):ax plt.subplot(dis_rows, dis_cols, i1)ax sns.kdeplot(df[num_columns[i]], colorskyblue ,fillTrue)ax.set_xlabel(num_columns[i],fontsize 14) plt.tight_layout() #plt.savefig(训练测试特征变量核密度图,formatepng,dpi500) plt.show() 价格分布很均匀PPI和重量有一些极大的异常点。 重量Weight的核密度图 从图中可以看出笔记本电脑的重量主要集中在1到2.5公斤之间。 约在1.5公斤左右有一个峰值表示大部分笔记本电脑的重量集中在这个范围。 在2.5公斤左右还有一个较小的峰值说明有一部分笔记本电脑重量较重。 重量超过3公斤的笔记本电脑非常少见。 价格Price的核密度图 从图中可以看出笔记本电脑的价格主要集中在10到11之间。 图中有一个明显的峰值表示大部分笔记本电脑的价格集中在这个范围内。 价格在9到10之间和11到12之间的分布较少但仍然有一定的密度。 价格超过12的笔记本电脑非常少见。 PPIPpi的核密度图 从图中可以看出笔记本电脑的PPI主要集中在100左右。 在100 PPI左右有一个明显的峰值表示大部分笔记本电脑的PPI集中在这个范围内。 图中显示了一些更高的PPI值超过200但这些笔记本电脑的数量较少。 PPI在200以上的笔记本电脑密度极低几乎可以忽略不计。 总结 笔记本电脑的重量主要集中在1到2.5公斤之间重量超过3公斤的笔记本电脑非常少见。 笔记本电脑的价格主要集中在10到11之间价格超过12的笔记本电脑非常少见。 笔记本电脑的PPI主要集中在100左右超过200 PPI的笔记本电脑数量极少。 画箱线图 ### 箱线图 plt.figure(figsize(3 * dis_cols, 2.5 * dis_rows),dpi128) for i in range(len(num_columns)):plt.subplot(dis_rows,dis_cols,i1)sns.boxplot(datadf[num_columns[i]], orientv,width0.5)plt.xlabel(num_columns[i],fontsize 14) plt.tight_layout() #plt.savefig(特征变量箱线图,formatepng,dpi500) plt.show() 不同变量之间的分析 联合不同变量的分布因为基本是价格影响因素所以我们都是根据不同的类别去分析价格所以都是分组聚合计算价格我们直接画图 不同 的Company、TypeName、Cpu_brand、Gpu_brand的价格分布情况 fig, axes plt.subplots(2, 2, figsize(14, 10), dpi128)# 绘制第一个子图的小提琴图 sns.violinplot(axaxes[0, 0], xCompany, yPrice, datadf) axes[0, 0].set_title(不同牌子的电脑价格分布) axes[0, 0].set_xlabel(牌子) axes[0, 0].set_ylabel(价格) axes[0, 0].set_xticklabels(axes[0, 0].get_xticklabels(), rotation90)# 绘制第二个子图的小提琴图 sns.violinplot(axaxes[0, 1], xTypeName, yPrice, datadf) axes[0, 1].set_title(不同类型的电脑价格分布) axes[0, 1].set_xlabel(类型) axes[0, 1].set_ylabel(价格) axes[0, 1].set_xticklabels(axes[0, 1].get_xticklabels(), rotation90)# 绘制第三个子图的小提琴图 sns.violinplot(axaxes[1, 0], xCpu_brand, yPrice, datadf) axes[1, 0].set_title(不同CPU的电脑价格分布) axes[1, 0].set_xlabel(CPU) axes[1, 0].set_ylabel(价格) axes[1, 0].set_xticklabels(axes[1, 0].get_xticklabels(), rotation90)# 绘制第四个子图的小提琴图 sns.violinplot(axaxes[1, 1], xGpu_brand, yPrice, datadf) axes[1, 1].set_title(不同GPU的电脑价格分布) axes[1, 1].set_xlabel(GPU) axes[1, 1].set_ylabel(价格) axes[1, 1].set_xticklabels(axes[1, 1].get_xticklabels(), rotation90)# 调整子图之间的间距 plt.tight_layout()# 显示图形 plt.show() 1.不同品牌的电脑价格分布 该图展示了各个品牌的笔记本电脑价格分布情况。 从图中可以看出Microsoft、LG、Apple等品牌的电脑价格普遍较高。 华为Huawei、小米Xiaomi等品牌的价格较为集中且偏低。 Dell和Lenovo的价格分布较广表明它们的产品线覆盖了从低端到高端的多个价格区间。 部分品牌如Chuwi、Vero等价格分布范围较小表明它们的产品种类可能较少或集中在某一价格区间。 2.不同类型的电脑价格分布 该图展示了不同类型笔记本电脑的价格分布情况。 2 in 1 Convertible二合一的笔记本和Ultrabook的价格普遍较高尤其是Ultrabook价格范围较大且中位数较高。 Netbook的价格最低且分布范围较窄表明这类电脑价格较为统一主要集中在低价区间。 Gaming游戏本的价格分布范围较大说明有从中端到高端不同价格的产品。 Workstation工作站的价格也较高且分布范围广反映出其高性能和专业用途的特点。 3.不同CPU品牌的电脑价格分布 该图展示了不同CPU品牌的笔记本电脑价格分布情况。 Intel Core i7的电脑价格最高且分布范围广反映出其高性能带来的高价格。 AMD Processor的价格分布较低且范围较小说明使用AMD处理器的笔记本电脑价格较为集中且偏低。 Intel Core i5的价格分布居中且范围适中表明这类笔记本电脑覆盖了中端市场。 其他Intel Processor的价格分布范围较大说明使用其他Intel处理器的笔记本电脑有不同的市场定位。 4.不同GPU品牌的电脑价格分布 该图展示了不同GPU品牌的笔记本电脑价格分布情况。 使用Intel GPU的笔记本电脑价格分布范围最广覆盖了从低端到高端的多个价格区间。 使用Nvidia GPU的价格较高且分布集中反映出其高性能和高价位的特点。 使用AMD GPU的价格分布较宽说明其产品线覆盖了从中低端到高端不同价格的市场。 总体来看不同品牌、类型、CPU品牌和GPU品牌的笔记本电脑在价格上都有较明显的分布特点反映出市场上不同定位和需求的产品特征。这些分布图可以帮助消费者在选择笔记本电脑时更好地了解不同产品的价格定位从而做出更加符合自身需求的选择。 研究不同的 TouchScreen, Ram,HDD, SSD 下的价格 fig, axes plt.subplots(2, 2, figsize(14, 8), dpi128)# 绘制 TouchScreen 与 Price 的散点图 sns.scatterplot(axaxes[0, 0], xTouchScreen, yPrice, datadf, hueTouchScreen,palettebrg) axes[0, 0].set_title(TouchScreen 与 Price 的关系) axes[0, 0].set_xlabel(TouchScreen) axes[0, 0].set_ylabel(Price) axes[0, 0].legend(titleTouchScreen)# 绘制 Ram 与 Price 的散点图 sns.scatterplot(axaxes[0, 1], xRam, yPrice, datadf, hueRam, paletteviridis) axes[0, 1].set_title(Ram 与 Price 的关系) axes[0, 1].set_xlabel(Ram) axes[0, 1].set_ylabel(Price) axes[0, 1].legend(titleRam)# 绘制 HDD 与 Price 的散点图 sns.scatterplot(axaxes[1, 0], xHDD, yPrice, datadf, hueHDD, paletteplasma) axes[1, 0].set_title(HDD 与 Price 的关系) axes[1, 0].set_xlabel(HDD) axes[1, 0].set_ylabel(Price) axes[1, 0].legend(titleHDD)# 绘制 SSD 与 Price 的散点图 sns.scatterplot(axaxes[1, 1], xSSD, yPrice, datadf, hueSSD, palettecoolwarm) axes[1, 1].set_title(SSD 与 Price 的关系) axes[1, 1].set_xlabel(SSD) axes[1, 1].set_ylabel(Price) axes[1, 1].legend(titleSSD)plt.tight_layout() # 显示图形 plt.show() TouchScreen 与 Price 的关系 该图展示了触摸屏TouchScreen与价格之间的关系。 从图中可以看出有触摸屏的笔记本电脑标记为1的价格显著高于没有触摸屏的笔记本电脑标记为0。 这表明触摸屏功能会显著提高笔记本电脑的价格。 Ram 与 Price 的关系 该图展示了内存大小Ram与价格之间的关系。 从图中可以看出随着内存大小的增加笔记本电脑的价格也在增加。 内存较大的笔记本电脑如30GB及以上的价格明显高于内存较小的笔记本电脑。 颜色深浅表示不同内存容量可以看出内存容量越大价格越高。 HDD 与 Price 的关系 该图展示了硬盘容量HDD与价格之间的关系。 从图中可以看出硬盘容量较大的笔记本电脑如1000GB及以上的价格显著高于硬盘容量较小的笔记本电脑如0GB到500GB。 硬盘容量为0的笔记本电脑价格分布较广可能是因为这类笔记本电脑使用的是SSD而非HDD。 总体来说HDD容量越大笔记本电脑的价格也越高。 SSD 与 Price 的关系 该图展示了固态硬盘SSD容量与价格之间的关系。 从图中可以看出SSD容量较大的笔记本电脑如1000GB的价格明显高于SSD容量较小的笔记本电脑如200GB及以下。 没有SSD的笔记本电脑价格相对较低但也有一定的分布范围。 整体上SSD容量越大笔记本电脑的价格越高。 总结 笔记本电脑的价格受到多个因素的影响包括触摸屏功能、内存大小、HDD和SSD的容量。 拥有触摸屏的笔记本电脑价格普遍较高。 内存、HDD和SSD容量越大笔记本电脑的价格越高。 数据清洗 数值型变量不需要处理但是很多类别变量需要继续处理 df.select_dtypes(exclude[int,float]).describe() 可以看到现在5个类别变量之间的类别数量company是19个类别有点多Company太多了会造成维度较多所以进行因子话其他变量数量都是56个可以直接进行独立热编码。 # 因子化 Company 列 df[Company] pd.factorize(df[Company])[0].astype(int) df[Company].head() 可以看到数据变成了数值型变量。 # 独立热编码然后查看变量的信息 # 独立热编码 data pd.get_dummies(df) data.info() 可以看到所有的数据都是数值型了可以直接进行机器学习了。 开始机器学习 划分训练集和测试集 ## 取出X和y   Xdata.drop(Price,axis1) ydata[Price] 划分训练集和验证集 #划分训练集和验证集 from sklearn.model_selection import train_test_split X_train,X_val,y_train,y_valtrain_test_split(X,y,test_size0.2,random_state0) 数据标准化 #数据标准化 from sklearn.preprocessing import StandardScaler scaler StandardScaler() scaler.fit(X_train) X_train_s scaler.transform(X_train) X_val_s scaler.transform(X_val) print(训练数据形状) print(X_train_s.shape,y_train.shape) print(验证数据形状) (X_val_s.shape,y_val.shape,) 模型选择 常见的手段了十种模型一起训练 #采用十种模型对比验证集精度 from sklearn.linear_model import LinearRegression from sklearn.linear_model import ElasticNet from sklearn.neighbors import KNeighborsRegressor from sklearn.tree import DecisionTreeRegressor from sklearn.ensemble import RandomForestRegressor from sklearn.ensemble import GradientBoostingRegressor from xgboost.sklearn import XGBRegressor from lightgbm import LGBMRegressor from sklearn.svm import SVR from sklearn.neural_network import MLPRegressor #线性回归 model1 LinearRegression()#弹性网回归 model2 ElasticNet(alpha0.05, l1_ratio0.5)#K近邻 model3 KNeighborsRegressor(n_neighbors10)#决策树 model4 DecisionTreeRegressor(random_state77)#随机森林 model5 RandomForestRegressor(n_estimators500, max_featuresint(X_train.shape[1]/3) , random_state0)#梯度提升 model6 GradientBoostingRegressor(n_estimators500,random_state123)#极端梯度提升 model7 XGBRegressor(objectivereg:squarederror, n_estimators1000, random_state0)#轻量梯度提升 model8 LGBMRegressor(n_estimators1000,objectiveregression, # 默认是二分类random_state0,force_row_wiseTrue)#支持向量机 model9 SVR(kernelrbf)#神经网络 model10 MLPRegressor(hidden_layer_sizes(8,), random_state7, max_iter10000)model_list[model1,model2,model3,model4,model5,model6,model7,model8,model9,model10] model_name[线性回归,惩罚回归,K近邻,决策树,随机森林,梯度提升,极端梯度提升,轻量梯度提升,支持向量机,神经网络] 自定义评价函数 from sklearn.metrics import mean_absolute_error from sklearn.metrics import mean_squared_error,r2_scoredef evaluation(y_test, y_predict):mae mean_absolute_error(y_test, y_predict)mse mean_squared_error(y_test, y_predict)rmse np.sqrt(mean_squared_error(y_test, y_predict))mape(abs(y_predict -y_test)/ y_test).mean()r_2r2_score(y_test, y_predict)return mae, rmse, mape,r_2 #mse 遍历训练 df_evalpd.DataFrame(columns[MAE,RMSE,MAPE,R2]) for i in range(len(model_list)):model_Cmodel_list[i]namemodel_name[i]print(f{name}正在训练...)model_C.fit(X_train_s, y_train)predmodel_C.predict(X_val_s)sevaluation(y_val,pred)df_eval.loc[name,:]list(s) 查看不同模型的数值型评价指标 df_eval 可视化 bar_width 0.4 colors[c, b, g, tomato, m, y, lime, k,orange,pink,grey,tan,purple] fig, ax plt.subplots(2,2,figsize(7,5),dpi256) for i,col in enumerate(df_eval.columns):nint(str(22)str(i1))plt.subplot(n)df_coldf_eval[col]m np.arange(len(df_col))#hatch[-,/,,x],plt.bar(xm,heightdf_col.to_numpy(),widthbar_width,colorcolors)#plt.xlabel(Methods,fontsize12)namesdf_col.indexplt.xticks(range(len(df_col)),names,fontsize8)plt.xticks(rotation40)if colR2:plt.ylabel(r$R^{2}$,fontsize14)else:plt.ylabel(col,fontsize14) plt.tight_layout() #plt.savefig(柱状图.jpg,dpi512) plt.show() 可能因为数据量不大所以神经网络的效果不太好。基本都是树模型的效果最好还是一样的经验集成模型方法都是最好的也就是XGB,LGBM,RF等。下面对他们进行交叉验证。 交叉验证 自定义一些交叉验证的函数 #回归问题交叉验证使用拟合优度mae,rmse,mape 作为评价标准 from sklearn.metrics import mean_absolute_error from sklearn.metrics import mean_squared_error,r2_score from sklearn.model_selection import KFolddef evaluation(y_test, y_predict):mae mean_absolute_error(y_test, y_predict)mse mean_squared_error(y_test, y_predict)rmse np.sqrt(mean_squared_error(y_test, y_predict))mape(abs(y_predict -y_test)/ y_test).mean()r_2r2_score(y_test, y_predict)return mae, rmse, mape def evaluation2(lis):arraynp.array(lis)return array.mean() , array.std() def cross_val(modelNone,XNone,YNone,K5,repeated1):df_meanpd.DataFrame(columns[R2,MAE,RMSE,MAPE]) df_stdpd.DataFrame(columns[R2,MAE,RMSE,MAPE])for n in range(repeated):print(f正在进行第{n1}次重复K折.....随机数种子为{n}\n)kf KFold(n_splitsK, shuffleTrue, random_staten)R2[]; MAE[] ; RMSE[] ; MAPE[]print(f 开始本次在{K}折数据上的交叉验证.......\n)i1for train_index, test_index in kf.split(X):print(f 正在进行第{i}折的计算)X_trainX.values[train_index]y_trainy.values[train_index]X_testX.values[test_index]y_testy.values[test_index]model.fit(X_train,y_train)scoremodel.score(X_test,y_test)R2.append(score)predmodel.predict(X_test)mae, rmse, mapeevaluation(y_test, pred)MAE.append(mae)RMSE.append(rmse)MAPE.append(mape)print(f 第{i}折的拟合优度为{round(score,4)}MAE为{round(mae,4)}RMSE为{round(rmse,4)}MAPE为{round(mape,4)})i1print(f ———————————————完成本次的{K}折交叉验证———————————————————\n)R2_mean,R2_stdevaluation2(R2)MAE_mean,MAE_stdevaluation2(MAE)RMSE_mean,RMSE_stdevaluation2(RMSE)MAPE_mean,MAPE_stdevaluation2(MAPE)print(f第{n1}次重复K折本次{K}折交叉验证的总体拟合优度均值为{R2_mean}方差为{R2_std})print(f 总体MAE均值为{MAE_mean}方差为{MAE_std})print(f 总体RMSE均值为{RMSE_mean}方差为{RMSE_std})print(f 总体MAPE均值为{MAPE_mean}方差为{MAPE_std})print(\n\n)df1pd.DataFrame(dict(zip([R2,MAE,RMSE,MAPE],[R2_mean,MAE_mean,RMSE_mean,MAPE_mean])),index[n])df_meanpd.concat([df_mean,df1])df2pd.DataFrame(dict(zip([R2,MAE,RMSE,MAPE],[R2_std,MAE_std,RMSE_std,MAPE_std])),index[n])df_stdpd.concat([df_std,df2])return df_mean,df_std 训练lgbm model LGBMRegressor(n_estimators200,objectiveregression,random_state1) lgb_crosseval,lgb_crosseval2cross_val(modelmodel,XX,Yy,K5,repeated6) 训练xgboost model XGBRegressor(n_estimators200,objectivereg:squarederror,random_state0) xgb_crosseval,xgb_crosseval2cross_val(modelmodel,XX,Yy,K5,repeated6) 训练随机森林 model RandomForestRegressor(n_estimators200, max_featuresint(X_train.shape[1]/3) , random_state0) rf_crosseval,rf_crosseval2cross_val(modelmodel,XX,Yy,K5,repeated6) 四个评价指标的均值图 对三个模型的评价指标不同的交叉验证的均值 plt.subplots(1,4,figsize(16,3)) for i,col in enumerate(lgb_crosseval.columns):nint(str(14)str(i1))plt.subplot(n)plt.plot(lgb_crosseval[col], k, labelLGB)plt.plot(xgb_crosseval[col], b-., labelXGB)plt.plot(rf_crosseval[col], r-^, labelRF)plt.title(f不同模型的{col}对比)plt.xlabel(重复交叉验证次数)plt.ylabel(col,fontsize16)plt.legend() plt.tight_layout() plt.show() 均值上来看LGBM的效果最好R2大误差指标低。 四个评价指标的方差图 plt.subplots(1,4,figsize(16,3)) for i,col in enumerate(lgb_crosseval2.columns):nint(str(14)str(i1))plt.subplot(n)plt.plot(lgb_crosseval2[col], k, labelLGB)plt.plot(xgb_crosseval2[col], b-., labelXGB)plt.plot(rf_crosseval2[col], r-^, labelRF)plt.title(f不同模型的{col}方差对比)plt.xlabel(重复交叉验证次数)plt.ylabel(col,fontsize16)plt.legend() plt.tight_layout() plt.show() 方差差不多模型的稳定性都差不多。 均值上来看LGBM的效果最好下面对LGBM搜索超参数。 搜超参数 k折交叉验证随机超参数搜索 #利用K折交叉验证搜索最优超参数 from sklearn.model_selection import KFold, StratifiedKFold from sklearn.model_selection import GridSearchCV,RandomizedSearchCV 超参数搜索 # Choose best hyperparameters by RandomizedSearchCV #随机搜索的参数 param_distributions {max_depth: range(5, 8), subsample:np.linspace(0.5,1,5 ),num_leaves: [15, 31, 63,],colsample_bytree: [0.6, 0.7, 0.8, 1.0],learning_rate: np.linspace(0.05,0.3,6 ), n_estimators:[100,200,300,400,500]}# min_child_weight:np.linspace(0,0.1,2 ), kfold KFold(n_splits5, shuffleTrue, random_state1) randomsearchRandomizedSearchCV(estimator LGBMRegressor(objectiveregression,random_state0,verbosity-1),param_distributionsparam_distributions, n_iter100) randomsearch.fit(X_train_s, y_train) 查看最好的模型参数 randomsearch.best_params_ 带入最好的参数模型训练和测试 best_estimator randomsearch.best_estimator_ best_estimator.score(X_val_s, y_val) #利用找出来的最优超参数在所有的训练集上训练然后预测 modelLGBMRegressor(objectiveregression,subsample0.75,learning_rate 0.1,n_estimators 500,num_leaves31,max_depth 6,colsample_bytree0.6,random_state0,verbosity-1) model.fit(X_train_s, y_train) model.score(X_val_s, y_val) 变量重要性排序图 最好的模型在全部数据上给进行训练 modelLGBMRegressor(objectiveregression,subsample0.75,learning_rate 0.1,n_estimators 500,num_leaves31,max_depth 6,colsample_bytree0.6,random_state0,verbosity-1) model.fit(X.to_numpy(),y.to_numpy()) model.score(X.to_numpy(), y.to_numpy()) 然后取出变量重要性排序画图 sorted_index model.feature_importances_.argsort()[::-1] plt.figure(figsize(10, 8),dpi128) # 可以调整尺寸以适应所有特征# 使用 seaborn 来绘制条形图 sns.barplot(xmodel.feature_importances_[sorted_index], yX.columns[sorted_index], orienth) plt.xlabel(Feature Importance) # x轴标签 plt.ylabel(Feature) # y轴标签 plt.show() 分析如下 Weight重量: 重量是最重要的特征表明重量对电脑价格有显著影响。较轻的电脑通常设计更为紧凑使用了高端材料和技术从而增加了成本。 轻便的设计是便携设备的一个重要特征尤其是对需要经常携带电脑的用户。 Company公司: 品牌对价格的影响也非常大。不同品牌在设计、制造和市场定位上有显著差异进而反映在价格上。 选择知名品牌的电脑可能提供更好的质量、售后服务和用户体验但通常价格也更高。 Ppi像素密度: 像素密度表示屏幕的清晰度。高像素密度的屏幕通常用于高端设备提供更好的显示效果但也会增加成本。 对于需要高质量显示效果的用户如设计师和多媒体编辑选择高PPI的屏幕是值得的。 SSD固态硬盘: 固态硬盘的容量和存在对价格有重要影响。SSD提供更快的读写速度和更好的耐用性因此价格较高。 选择较大容量的SSD可以显著提升电脑性能和用户体验但也要考虑成本因素。 Ram内存: 内存容量对价格的影响较大。较大的内存意味着更高的计算能力和多任务处理能力因此会提高电脑价格。 对于需要处理大量数据或运行多个程序的用户大容量内存是必不可少的。 HDD机械硬盘: 机械硬盘容量对价格也有一定影响。尽管SSD更受欢迎但大容量HDD依然是存储大量数据的经济选择。 对于需要大量存储空间的用户可以选择搭配SSD和HDD的混合存储方案。 IpsIPS屏幕: IPS屏幕提供更好的视角和颜色表现但也会增加成本从而提高电脑价格。 对于需要高质量显示效果的用户IPS屏幕是一个重要特征。 Cpu_brand_Intel Core i7: Intel Core i7处理器是高端处理器通常用于高性能电脑对价格有显著影响。 高性能处理器意味着更高的处理速度和更强的计算能力这在一定程度上反映了产品的高端定位。 Cpu_brand_Intel Core i5: Intel Core i5处理器虽然性能不如i7但在主流市场上有较高的性价比对价格也有显著影响。 对于预算有限但需要较高性能的用户i5处理器是一个不错的选择。 TypeName_Notebook笔记本类型: 笔记本类型对价格也有重要影响。不同类型的笔记本如普通笔记本、游戏本、超极本等在设计和性能上有显著差异进而影响价格。 选择合适类型的笔记本应根据具体用途和预算进行权衡。 其他特征如显卡品牌、触摸屏、操作系统等也对价格有一定影响但相对较低。这些特征可以根据具体需求进行选择以获得最优的性价比和使用体验。 结论 从变量重要性图中可以看出重量、品牌和像素密度是影响电脑价格的主要因素。这些特征显著提升了电脑的性能和用户体验因此对价格有较大影响。其他特征如SSD、内存和处理器类型等也对价格有重要影响应根据具体需求和预算综合考虑这些因素。 在选择电脑时优先考虑这些关键特征可以在保证性能的同时控制成本获得最优的使用体验。 创作不易看官觉得写得还不错的话点个关注和赞吧本人会持续更新python数据分析领域的代码文章~(需要定制类似的代码可私信)
http://www.yayakq.cn/news/5771/

相关文章:

  • 网站集约化建设存在的困难室内设计需要什么学历
  • 尼高网站设计公司网站开发运营推广叫什么
  • ae模板精品站互联网培训班
  • 宁波网站建设明细报价上海松江水处理网站建设
  • 信阳专业做网站公司网站制作推广需要多少钱
  • 莱芜住房和城乡建设部网站邯郸广告公司网站建设
  • 众筹网站建设报价春雨app直播免费版下载
  • 微信网站公众平台太原网站建设策划方案
  • 建设心理网站的背景网站建设常用代码
  • 全栈网站开发在哪租用网站
  • 网站推广包括哪些龙岗网页设计
  • 怎么做网站视频教育品牌加盟网站建设
  • 西部数码网站源码电商培训机构推荐
  • 网站变灰是什么事品牌软文范文
  • 外语网站建设济南建网站公司
  • 花瓣设计网站官网入口在网站做责编会很累吗
  • 在一个网站下建设多个子网站西安网站建设中企建站
  • 山东企业网站建设自主建站
  • 京东商城网站建设目标湖北省利川市建设局网站
  • 高端房产网站建设山楼小院在哪家网站做宣传
  • 南昌网站设计专业排名阳城做网站
  • 东城网站建设工作室智能硬件开发
  • 海淀网站建设公司排名网站工程师简历
  • 英文介绍做美食视频网站网站app建设需要资源
  • 网站商城服务体系建设方案平面广告设计素材网
  • 做搜狗网站优化排嘉祥建设局网站
  • 兰州市城乡建设局网站公布的信息营销网站建设 公司排名
  • 山东电力建设网站确山网站建设
  • 网站开发集中国建设信息网官网八大员证查询
  • 自动生成作文的网站中小企业营销型网站建设