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

大石桥城乡规划建设局网站网站名称可以是域名

大石桥城乡规划建设局网站,网站名称可以是域名,自己做的网站打开太慢,wordpress获取文章作者id1 场景分析 1.1 项目背景 描述开发项目模型的一系列情境和因素#xff0c;包括问题、需求、机会、市场环境、竞争情况等 1.2. 解决问题 传统机器学习在解决实际问题中主要分为两类#xff1a; 有监督学习#xff1a;已知输入、输出之间的关系而进行的学习#xff0c;从而…1 场景分析 1.1 项目背景 描述开发项目模型的一系列情境和因素包括问题、需求、机会、市场环境、竞争情况等 1.2. 解决问题 传统机器学习在解决实际问题中主要分为两类 有监督学习已知输入、输出之间的关系而进行的学习从而产生一个能够对已知输入给出合适输出的模型。这些算法在图像分类、语音识别、自然语言处理、推荐系统等领域有着广泛的应用无监督学习已知输入无输出结果而进行的学习发现数据中的潜在特征和规律而训练的模型。这些算法在数据挖掘、图像处理、自然语言处理等领域有着广泛的应用 传统机器学习达到的目的主要分为两类 分析影响结果的主要因素充分必要条件下预测结果 传统机器学习算法在实际开发中主要分两类 基于树的算法非基于树的算法 2 数据整体情况 2.1 数据加载 数据分析3剑客numpy pandas matplotlib # 导入相关包 import os import numpy as np import pandas as pd import warnings warnings.filterwarnings(ignore) pd.set_option(display.max_rows, None) import matplotlib.pyplot as plt import matplotlib matplotlib.style.use(ggplot) import seaborn as sns import plotly.express as px from sklearn import preprocessing from sklearn.preprocessing import LabelEncoder import holoviews as hv from holoviews import opts hv.extension(bokeh)1、 pandas读取数据: pd.read_csv()训练数据一般从csv文件加载。读取数据返回DataFramedf.head() 查看前5条件数据分布 # 读取数据 df pd.read_csv(./xxx.csv) df.head()2、查看数据总体信息 df.info() 3、 查看数据描述 # 数据总数、平均值、标准差、最大最小值25% 50% 75% 分位值 df.describe().T 4、统计数据空值 df.isnull().sum() 5、 查看数据形状 df.shape6、查看数据类型 df.dtypes2.2 样本是否均衡 如果正、负样本不均衡怎么做 大样本变少——下采样小样本变多——上采样实际应用中上采样较多将真实的数据做重复冗余 2.3 数据分析 以下为案例 绘制直方图 fig px.histogram(df, x列名, hover_datadf.columns, titleXXX分布, barmodegroup) fig.show()fig px.histogram(df, xTPC_LIP, colorTPC_LIP, hover_datadf.columns, title罐盖分布, barmodegroup) fig.show()temp_agg df.groupby(OUTER_TEMPERATURE).agg({TEMPERATURE: [min, max]}) temp_maxmin pd.merge(temp_agg[TEMPERATURE][max],temp_agg[TEMPERATURE][min],right_indexTrue,left_indexTrue) temp_maxmin pd.melt(temp_maxmin.reset_index(), [OUTER_TEMPERATURE]).rename(columns{OUTER_TEMPERATURE:OUTER_TEMPERATURE, variable:Max/Min}) hv.Bars(temp_maxmin, [OUTER_TEMPERATURE, Max/Min], value).opts(titleTemperature by OUTER_TEMPERATURE Max/Min, ylabelTEMPERATURE)\.opts(opts.Bars(width1000, height700,tools[hover],show_gridTrue))绘制分布图 hv.Distribution(np.round(df[列名])).opts(title标题, colorgreen, xlabelx轴标签名, ylabely轴标签名)\ .opts(opts.Distribution(width1000, height600, tools[hover], show_gridTrue))hv.Distribution(df[BF_IRON_DUR]).opts(titleXXX时长, colorred, xlabel时长秒, ylabelDestiny)\ .opts(opts.Distribution(width1000, height600, tools[hover], show_gridTrue))寻找特征偏态(skewness)和核密度估计(Kernel density estimate KDE) plt.figure(figsize(15,10)) for i,col in enumerate(df.columns, 1):plt.subplot(5,3,i)plt.title(fDistribution of {col} Data)sns.histplot(df[col],kdeTrue)plt.tight_layout()plt.plot()绘制曲线图 iron_temp df[IRON_TEMPERATURE].iloc[:300]temp df[TEMPERATURE].iloc[:300](hv.Curve(iron_temp, labelXXX) * hv.Curve(temp, labelXXX)).opts(titleXXXX温度对比, ylabelIRON_TEMPERATURE, xlabelTEMPERATURE)\.opts(opts.Curve(width1500, height500,tools[hover], show_gridTrue))3 数据处理 3.1 数据清洗 3.1.1离群值 利用箱形图找出离群值并可过滤剔除 Minimum 最小值 First quartile 1/4分位值 Median 中间值 Third quartile 3/4分位值 Maximum 最大值 XXX离群值1 XXX离群值2 fig px.box(df, yXXX, titleXXXXX) fig.show()3.1.2空数据处理 如果数据量比较大查出空数据的行或列删除即可反之要珍惜现有的数据样本 可采用以下两种方法进行补全 随机森林补全 # 引入随机森林模型 from sklearn.ensemble import RandomForestRegressor # 随机森林模型 rfr RandomForestRegressor(random_stateNone, n_estimators500, n_jobs-1) # 利用已知输入和输出数据进行模型训练 rfr.fit(known_X, known_y) # 输出模型得分 score rfr.score(known_X, known_y) print(模型得分, score) # 获得缺失的特征数据X预测并补全 unknown_predict rfr.predict(unKnown_X)简单归类补全 # 引入简单归类包 from sklearn.impute import SimpleImputer # 对缺失的列进行平均值补全 imputer SimpleImputer(missing_valuesnp.nan, strategymean) # 进行模型训练 imputer imputer.fit_transform(df[[TEMPERATURE]]) # 输出训练结果 imputer3.2 特征工程 特征衍生、选择、缩放、分布、重要性 特征衍生: 特征转换和特征组合 特征转换——单特征自己进行变换例如取绝对值、进行幂函数变换等 特征组合——多特征之间组合变换如四则运算、交叉组合、分组统计等 3.2.1 特征选择 corr相关性系数删除相关性强、冗余的特征,对分析权重很重要 # 浅颜色代表正相关 深颜色代表负相关 plt.figure(figsize(16, 16)) sns.heatmap(df.corr(), cmapBrBG, annotTrue, linewidths.5) _ plt.xticks(rotation45)3.2.2 特征缩放 受特征缩放的影响距离算法 KNN K-means SVM 等 不受特征缩放的影响基于树的算法 缩放方法 归一化 最大、最小值 0~1 之间适合非高斯分布 K-Nearest Neighbors and Neural Networks 标准化 适合高斯分布但也可不是高斯分布。平均值为0标准差为1即使有异常值不受影响 Robust Scaler(鲁棒缩放) 计算上下四分位数Q1和Q3之间的差值每个数据点减去下四分位数Q1再除以四分位数范围Q3-Q1 # data x pd.DataFrame({# Distribution with lower outliersx1: np.concatenate([np.random.normal(20, 2, 1000), np.random.normal(1, 2, 25)]),# Distribution with higher outliersx2: np.concatenate([np.random.normal(30, 2, 1000), np.random.normal(50, 2, 25)]), }) np.random.normalscaler preprocessing.RobustScaler() robust_df scaler.fit_transform(x) robust_df pd.DataFrame(robust_df, columns [x1, x2])scaler preprocessing.StandardScaler() standard_df scaler.fit_transform(x) standard_df pd.DataFrame(standard_df, columns [x1, x2])scaler preprocessing.MinMaxScaler() minmax_df scaler.fit_transform(x) minmax_df pd.DataFrame(minmax_df, columns [x1, x2])fig, (ax1, ax2, ax3, ax4) plt.subplots(ncols 4, figsize (20, 5)) ax1.set_title(Before Scaling)sns.kdeplot(x[x1], ax ax1, color r) sns.kdeplot(x[x2], ax ax1, color b) ax2.set_title(After Robust Scaling)sns.kdeplot(robust_df[x1], ax ax2, color red) sns.kdeplot(robust_df[x2], ax ax2, color blue) ax3.set_title(After Standard Scaling)sns.kdeplot(standard_df[x1], ax ax3, color black) sns.kdeplot(standard_df[x2], ax ax3, color g) ax4.set_title(After Min-Max Scaling)sns.kdeplot(minmax_df[x1], ax ax4, color black) sns.kdeplot(minmax_df[x2], ax ax4, color g) plt.show()3.2.3 类别特征处理 非基于树的算法最好的方式——独热编码 # 独热编码 feature_col_nontree [TPC_AGE,TPC_LID,BF_START_WAITING, BF_IRON_DUR, BF_END_WAITING, BF_RAIL_DUR, RAIL_STEEL_DUR, EMPTY_START_WAITING, EMPTY_DUR, EMPTY_END_WAITING, STEEL_RAIL_DUR, RAIL_BF_DUR,TOTAL_TIME,OUTER_TEMPERATURE] fullSelpd.get_dummies(feature_col_nontree)基于树的算法最好的方式——标签编码 df_tree df.apply(LabelEncoder().fit_transform) df_tree.head()3.2.4 特征重要性 注意只有在特征没有冗余或被拆分的情况下分析特征的重要性才有意义 from sklearn.ensemble import RandomForestClassifierclf RandomForestClassifier() clf.fit(X, y) clf.feature_importances_ plt.rcParams[figure.figsize] (12, 6) plt.style.use(fivethirtyeight)feature list(X.columns)importances clf.feature_importances_ feat_name np.array(feature) index np.argsort(importances)[::-1]plt.bar(range(len(index)), importances[index], colorlightblue) plt.step(range(15), np.cumsum(importances[index])) _ plt.xticks(range(15), labelsfeat_name[index], rotationvertical, fontsize14)4 构建模型 4.1 数据拆分 训练数据80% 测试数据20% 训练数据80% 在分80%为训练数据20%为验证数据 from sklearn.model_selection import train_test_split X df.drop(TEMPERATURE, axis1) y df[TEMPERATURE] X_train_all, X_test, y_train_all, y_test train_test_split(X, y, test_size0.2) X_train, X_valid, y_train, y_valid train_test_split(X_train_all, y_train_all, test_size0.2) print(X_train.shape, y_train.shape) print(X_test.shape, y_test.shape) print(X_valid.shape, y_valid.shape)4.2 选用算法 非基于树的算法 LinearRegressionLogisticRegressionNaive BayesSVMKNNK-Means 基于树的算法 Decission TreesExtra TreesRandom ForestXGBoostGBMLightGBM 4.2 数据交叉验证 k-fold cross-validation: k个不相交的子集其中一个子集作为测试集其余的子集作为训练集。重复k次stratified k-fold cross-validation (样本分布不均匀情况下使用) 4.3 算法比较优选 # 导入机器学习 线性回归为例 from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, ExtraTreesRegressor from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.linear_model import LinearRegression from sklearn.neighbors import KNeighborsRegressor from sklearn.tree import DecisionTreeRegressor from sklearn.svm import SVR from xgboost import XGBRegressor from sklearn.model_selection import GridSearchCV, cross_val_score, StratifiedKFold# 设置kfold 交叉采样法拆分数据集 kfold StratifiedKFold(n_splits10)# 汇总不同模型算法 regressors [] regressors.append(SVR()) regressors.append(DecisionTreeRegressor()) regressors.append(RandomForestRegressor()) regressors.append(ExtraTreesRegressor()) regressors.append(GradientBoostingRegressor()) regressors.append(KNeighborsRegressor()) regressors.append(LinearRegression()) regressors.append(LinearDiscriminantAnalysis()) regressors.append(XGBRegressor())# 不同机器学习交叉验证结果汇总 cv_results [] for regressor in regressors:cv_results.append(cross_val_score(estimatorregressor, XX_train, yy_train, scoringneg_mean_squared_error, cvkfold, n_jobs-1))# 求出模型得分的均值和标准差 cv_means [] cv_std []for cv_result in cv_results:cv_means.append(cv_result.mean())cv_std.append(cv_result.std())# 汇总数据 cvResDf pd.DataFrame({cv_mean: cv_means,cv_std: cv_std,algorithm:[SVC,DecisionTreeReg,RandomForestReg,ExtraTreesReg,GradientBoostingReg,KNN,LR,LDA, XGB]}) cvResDfbar sns.barplot(datacvResDf.sort_values(bycv_mean, ascendingFalse),xcv_mean, yalgorithm, **{xerr: cv_std}) bar.set(xlim(0.7, 0.9))4.3 深度学习效果 tesorflow import keras d_model keras.models.Sequential() d_model.add(keras.layers.Dense(units256, activationrelu, input_shape(X_train_scaler.shape[1:]))) d_model.add(keras.layers.Dense(units128, activationrelu)) d_model.add(keras.layers.Dense(units1))out_put_dir ./ if not os.path.exists(out_put_dir):os.mkdir(out_put_dir) out_put_file os.path.join(out_put_dir, model.keras)callbacks [keras.callbacks.TensorBoard(out_put_dir),keras.callbacks.ModelCheckpoint(out_put_file, save_best_onlyTrue, save_weights_onlyTrue),keras.callbacks.EarlyStopping(patience5, min_delta1e-3) ]d_model.compile(optimizerAdam, lossmean_squared_error, metrics[mse]) history d_model.fit(X_train_scaler, y_train, epochs100, validation_data(X_valid_scaler, y_valid), callbackscallbacks)pytorch import pandas as pd import torch from torch import nndata pd.read_csv(XXX.csv, headerNone) print(data.head()) X data.iloc[:, :-1] print(X.shape) Y data.iloc[:, -1] Y.replace(-1, 0, inplaceTrue) print(Y.value_counts()) X torch.from_numpy(X.values).type(torch.FloatTensor) Y torch.from_numpy(Y.values.reshape(-1, 1)).type(torch.FloatTensor) model nn.Sequential(nn.Linear(15, 1),nn.Sigmoid() ) print(model)loss_fn nn.BCELoss() opt torch.optim.SGD(model.parameters(), lr0.0001) batch_size 32 steps X.shape[0] // batch_size for epoch in range(1000):for batch in range(steps):start batch * batch_sizeend start batch_sizex X[start:end]y Y[start:end]y_pred model(x)loss loss_fn(y_pred, y)opt.zero_grad()loss.backward()opt.step()print(model.state_dict())accuracy ((model(X).data.numpy() 0.5) Y.numpy()).mean() print(accuracy , accuracy)5 模型优化 5.1 网络搜索 选择表现优秀的模型 DecisionTreeRegressor模型 #DecisionTreeRegressor模型 GTR DecisionTreeRegressor() gb_param_grid {criterion: [squared_error, friedman_mse, absolute_error, poisson],splitter: [best, random],max_depth: [4, 8],min_samples_leaf: [100,150],max_features: [0.3, 0.1] } modelgsGTR GridSearchCV(GTR,param_grid gb_param_grid, cvkfold, scoringneg_mean_squared_error, n_jobs -1, verbose 1) modelgsGTR.fit(X_train,y_train) modelgsGTR.best_score_xgboost import xgboost as xgbparams {objective:reg:linear,booster:gbtree,eta:0.03,max_depth:10,subsample:0.9,colsample_bytree:0.7,silent:1,seed:10} num_boost_round 6000 dtrain xgb.DMatrix(X_train, y_train) dtest xgb.DMatrix(X_test, y_test)evals [(dtrain, train), (dtest, validation)]gbm xgb.train(params, # 模型参数dtrain, # 训练数据num_boost_round, # 轮次决策树的个数evalsevals, # 验证评估的数据early_stopping_rounds100, # 在验证集上当连续n次迭代分数没有提高后提前终止训练verbose_evalTrue) # 打印输出log日志每次训练详情6 模型评估 Accuracy 准确率 Precision 精确率 Recall 召回率 F1 score (F1) ROC/AUC Log loss 损失函数 线性回归 逻辑回归 请尊重别人的劳动成果 转载请务必注明出处
http://www.pierceye.com/news/109234/

相关文章:

  • 美容院网站建设西安有关做网站的公司有哪些
  • 湛江做网站设计公司网络推广网站培训班
  • 大型网站建立萝岗微信网站建设
  • 门户网站建设发展趋势官网网站怎么创建
  • 企业网站如何做自然搜索phpcms 网站转移
  • 站内优化怎么做建设设计网站
  • 如何建设机器人教育网站上海有名的网络公司
  • 网站二级目录做网站淄博网站建设 很乱
  • 常州做网站企业海口网站开发建设
  • 做php网站用什么软件开发wordpress页面图片轮播图
  • 做网站页面大小多大8上的信息课做网站作业
  • 自己做微网站创欧科技 网站建设
  • 网站设计师大学学什么专业北京燕华工程建设有限公司网站
  • 广州专业网站建设企业wordpress 数据库修改
  • 淮南装饰公司网站建设seo 网站树
  • 设计素材下载网站网络营销课程设计报告
  • 安庆公司做网站搜索引擎收录提交入口
  • 城固网站建设wordpress主题谁的最好
  • 国外建站企业北京鑫创网站建设
  • 网站做视频wordpress插件手动升级
  • wordpress收不到网站没有收款接口网站怎么做收款
  • 信阳做网站推广用tornado做网站
  • 网站开发与数据库ppt成都优化网站建设
  • 毕业设计静态网站建设选题依据企业网络营销的优势
  • 网站图片动态换名网站充值支付宝收款怎么做
  • 蜘蛛网是个什么网站做特卖的购物网站
  • 从零学做网站古典 网站模板
  • h5网站模板开发网站后台哪些功能需要前端配合
  • 网站建设 宜宾佛山企业网站自助建站
  • 苏宁易购网站建设 的定位手机网站制作招聘