网站系统安全保护等级是必须做的开发网站公司名称

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

网站系统安全保护等级是必须做的,开发网站公司名称,做网站优化就是发文章吗,工程竣工信息哪里可以查询文章目录 #x1f3f3;️#x1f308; 1. 导入模块#x1f3f3;️#x1f308; 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 字段说明2.4 删除重复值2.5 删除空值 #x1f3f3;️#x1f308; 3. 数据分析-特征分析3.1 年龄及转化率分析3.2 各营销渠道人数及… 文章目录 ️ 1. 导入模块️ 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 字段说明2.4 删除重复值2.5 删除空值 ️ 3. 数据分析-特征分析3.1 年龄及转化率分析3.2 各营销渠道人数及转化率分析3.3 各营销类型人数及转化率分析3.4 营销花费分析3.5 网站点击率分析3.6 客户访问网站总次数与转化率分析3.7 客户每次访问网站时间与转化率分析 ️ 4. 模型分析4.1 各特征相关性热图4.2 KNN近邻算法4.2.1 找到高精度的k值4.2.2 模型准确性4.2.3 混淆矩阵4.2.4 ROC曲线 4.3 随机森林4.3.1 模型准确性4.3.2 混淆矩阵4.3.3 ROC曲线4.3.4 ROC曲线-置信区间 4.4 特征重要性 ️ 5. 总结️ 6. 可视化项目源码数据 大家好我是
【Python当打之年(点击跳转)】 本期将利用KNN近邻算法和随机森林模型对用户转化率进行分析与预测 看看两个模型更适合对此类问题进行预测以及哪些特征量对用户转化率影响比较大希望对大家有所帮助如有疑问或者需要改进的地方可以联系小编。 涉及到的库 Pandas — 数据处理Matplotlib/Seaborn — 数据可视化Sklearn — 机器学习 ️ 1. 导入模块 import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt import warnings warnings.filterwarnings(ignore) plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False️ 2. Pandas数据处理 2.1 读取数据 df1 pd.read_csv(./用户转化预测数据集.csv)2.2 查看数据信息 df.info()2.3 字段说明 2.4 删除重复值 df df.drop_duplicates()2.5 删除空值 df df.drop_duplicates()️ 3. 数据分析-特征分析 3.1 年龄及转化率分析 def get_Age_analyze1():fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel(年龄(岁), colorcolor1, fontsizesize)axis1.set_ylabel(人数, colorcolor1, fontsizesize)axis1.tick_params(both, colorscolor1, labelsizesize)sns.histplot(df[Age], kdeTrue, bins10)axis1.grid(True, whichboth, linestyle–, linewidth0.5)plt.title(年龄分布,size16) def get_Age_analyze2():fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))axis2 axis1.twinx()# 绘制baraxis1.bar(labels, y_data1, label人数,colorcolor1, alpha0.8)axis1.set_ylim(0, 2500)axis1.set_ylabel(人数, colorcolor1, fontsizesize)axis1.tick_params(both, colorscolor1, labelsizesize)for i, (xt, yt) in enumerate(zip(labels, y_data1)):axis1.text(xt, yt 50, f{yt:.2f},sizesize,hacenter, vabottom, colorcolor1)# 绘制plotaxis2.plot(labels, y_data2,label转化率, colorrange_color[-1], markero, linewidth2)axis2.set_ylabel(转化率(%), colorcolor2,fontsizesize)axis2.tick_params(y, colorscolor2, labelsizesize)axis2.set_ylim(80, 90)for i, (xt, yt) in enumerate(zip(labels, y_data2)):axis2.text(xt, yt 0.3, f{yt:.2f},sizesize,hacenter, vabottom, colorcolor2)axis1.legend(loc(0.88, 0.92))axis2.legend(loc(0.88, 0.87))plt.gca().spines[left].set_color(range_color[0])plt.gca().spines[right].set_color(range_color[-1])plt.gca().spines[left].set_linewidth(2)plt.gca().spines[right].set_linewidth(2)plt.title(各年龄人数及转化率分布,size16)客户年龄集中分布在10-70岁之间不同年龄段的客户转化率波动不大所以年龄对客户是否转化没有太大影响 3.2 各营销渠道人数及转化率分析 def get_CampaignChannel_analyze():fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))# (left, bottom, width, height)axis2 axis1.twinx()# 绘制baraxis1.bar(x_data, y_data1, label人数,colorrange_color[2], alpha0.8)axis1.set_ylim(0, 2500)axis1.set_ylabel(人数, colorcolor1, fontsizesize)axis1.tick_params(both, colorscolor1, labelsizesize)for i, (xt, yt) in enumerate(zip(x_data, y_data1)):axis1.text(xt, yt 50, f{yt:.2f},sizesize,hacenter, vabottom, colorrange_color[2])# 绘制plotaxis2.plot(x_data, y_data2,label转化率, colorcolor2, markero, linewidth2)axis2.set_ylabel(转化率(%), colorcolor2,fontsizesize)axis2.tick_params(y, colorscolor2, labelsizesize)axis2.set_ylim(80, 90)for i, (xt, yt) in enumerate(zip(x_data, y_data2)):axis2.text(xt, yt 0.3, f{yt:.2f},sizesize,hacenter, vabottom, colorcolor2)axis1.legend(loc(0.88, 0.92))axis2.legend(loc(0.88, 0.87))plt.gca().spines[left].set_color(range_color[2])plt.gca().spines[right].set_color(range_color[-1])plt.gca().spines[left].set_linewidth(2)plt.gca().spines[right].set_linewidth(2)plt.title(各渠道人数及转化率分布,size16)五个不同营销渠道的用户转化率波动在2%以内所以营销渠道对客户是否转化没有太大影响 3.3 各营销类型人数及转化率分析 不同营销类型的用户转化率波动最大接近10%所以营销类型对客户是否转化有一定的影响 3.4 营销花费分析 def get_AdSpend_analyze1():fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel(营销花费(美元), colorcolor1, fontsizesize)axis1.set_ylabel(人数, colorcolor1, fontsizesize)axis1.tick_params(both, colorscolor1, labelsizesize)sns.histplot(df[AdSpend], kdeTrue, bins10)axis1.grid(True, whichboth, linestyle–, linewidth0.5)plt.title(营销花费分布,size16)不同营销花费的用户转化率波动比较明显最大超过了10%所以营销花费对客户是否转化有明显的影响 3.5 网站点击率分析 def get_ClickThroughRate_analyze1():fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel(网站点击率(%), colorcolor1, fontsizesize)axis1.set_ylabel(人数, colorcolor1, fontsizesize)axis1.tick_params(both, colorscolor1, labelsizesize)sns.histplot(df[ClickThroughRate], kdeTrue, bins10)axis1.grid(True, whichboth, linestyle–, linewidth0.5)plt.title(网站点击率分布,size16)不同点击率的用户转化率波动同样比较明显最大超过了10%所以点击率对客户是否转化也有明显的影响 3.6 客户访问网站总次数与转化率分析 def get_WebsiteVisits_analyze1():fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel(访问网站总次数, colorcolor1, fontsizesize)axis1.set_ylabel(人数, colorcolor1, fontsizesize)axis1.tick_params(both, colorscolor1, labelsizesize)sns.histplot(df[WebsiteVisits], kdeTrue, bins10)axis1.grid(True, whichboth, linestyle–, linewidth0.5)plt.title(访问网站总次数分布,size16)不同客户访问网站总次数的用户转化率波动比较明显最大超过了10%所以客户访问网站总次数对客户是否转化有明显的影响 3.7 客户每次访问网站时间与转化率分析 def get_TimeOnSite_analyze1():fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel(每次访问平均时间, colorcolor1, fontsizesize)axis1.set_ylabel(人数, colorcolor1, fontsizesize)axis1.tick_params(both, colorscolor1, labelsizesize)sns.histplot(df[TimeOnSite], kdeTrue, bins10)axis1.grid(True, whichboth, linestyle–, linewidth0.5)plt.title(每次访问平均时间分布,size16)不同客户每次访问网站时间的用户转化率波动比较明显所以客户每次访问网站时间对客户是否转化有明显的影响。 ️ 4. 模型分析 from sklearn.preprocessing import LabelEncoder from sklearn.neighbors import KNeighborsClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.utils import resample from scipy.interpolate import interp1d from sklearn.metrics import confusion_matrix, roc_auc_score, roc_curve, auc from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score4.1 各特征相关性热图 def get_model_analyze(): corrdf data.corr()plt.figure(figsize(12, 12), dpi80)sns.heatmap(corrdf, annotTrue,cmaprainbow, linewidths0.05,squareTrue,annot_kws{size:8}, cbar_kws{shrink: 0.8})plt.title(各特征相关性热图,size16)通过各特征相关性热图可以看出AdSpend、ClickThroughRate、ConversionRate、WebsiteVisits、PagesPerVisit、TimeOnSite、EmailOpens、EmailClicks、PreviousPurchases、LoyaltyPoints等特征量相较于其他特征量对用户是否转化有较明显的影响 4.2 KNN近邻算法 4.2.1 找到高精度的k值 k_values range(1, 21) accuracies [] for k in k_values:model KNeighborsClassifier(n_neighborsk)model.fit(x_train, y_train)y_pred model.predict(x_test.values)accuracy accuracy_score(y_test, y_pred)accuracies.append(accuracy)k 15 时模型的精度最高达到 0.88625 4.2.2 模型准确性 model KNeighborsClassifier(n_neighborsbest_k) model.fit(x_train, y_train) train_accuracy accuracy_score(y_train, model.predict(x_train.values)) test_accuracy accuracy_score(y_test, model.predict(x_test.values))y_pred model.predict(x_test.values) accuracy accuracy_score(y_test, y_pred) conf_matrix confusion_matrix(y_test, y_pred)4.2.3 混淆矩阵 4.2.4 ROC曲线 def get_model_roc1():y_probs model.predict_proba(x_test.values)[:, 1]fpr, tpr, thresholds roc_curve(y_test, y_probs)auc roc_auc_score(y_test, y_probs)fig plt.figure(figsize(12, 6), dpi80)axis1 fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.tick_params(both, colorscolor1, labelsizesize)axis1.plot(fpr, tpr, colorblue, lw2, labelfAUC {auc:.2f})axis1.plot([0, 1], [0, 1], colorgray, linestyle–)plt.xlim([0.0, 1.0])plt.ylim([0.0, 1.05])plt.xlabel(假正率,colorcolor1, fontsizesize)plt.ylabel(召回率,colorcolor1, fontsizesize)plt.title(fROC曲线 - {type(model).name},size16)plt.legend(loclower right,fontsizesize)AUC 0.57AUC 1是完美分类器采用这个预测模型时存在至少一个阈值能得出完美预测0.5 AUC 1优于随机猜测。这个分类器妥善设定阈值的话能有预测价值AUC 0.5跟随机猜测一样例抛硬币模型没有预测价值AUC 0.5比随机猜测还差 4.3 随机森林 4.3.1 模型准确性 x_data data.drop(columns[Conversion]) y data[Conversion] x_train, x_test, y_train, y_test train_test_split(x_data, y, test_size0.2, random_state7) model RandomForestClassifier(random_state15) model.fit(x_train, y_train)y_pred model.predict(x_test) accuracy accuracy_score(y_test, y_pred) conf_matrix confusion_matrix(y_test, y_pred)4.3.2 混淆矩阵 4.3.3 ROC曲线 AUC 0.83效果比KNN更好 4.3.4 ROC曲线-置信区间 def get_model_roc3():# 计算原始ROC曲线的FPR, TPR, 和thresholdsfpr_orig, tpr_orig, thresholds_orig roc_curve(y_test, y_probs)# 计算多个ROC曲线for i in range(n_bootstraps):x_resample, y_resample resample(x_test, y_test)y_probs_resample model.predict_proba(x_resample)[:, 1]fpr_resample, tpr_resample, _ roc_curve(y_resample, y_probs_resample)# 线性插值fpr_interp interp1d(np.linspace(0, 1, len(fpr_resample)), fpr_resample, fill_valueextrapolate)(np.linspace(0, 1, len(fpr_orig)))tpr_interp interp1d(np.linspace(0, 1, len(tpr_resample)), tpr_resample, fill_valueextrapolate)(np.linspace(0, 1, len(tpr_orig)))fpr_bootstraps[i] fpr_interptpr_bootstraps[i] tpr_interp# 计算置信区间tpr_ci np.percentile(tpr_bootstraps, [2.5, 97.5], axis0)# 绘制ROC曲线和置信区间plt.figure(figsize(12, 6), dpi80)plt.plot(fpr_orig, tpr_orig, colorblue, lw2, labelfAUC {auc:.2f})plt.fill_between(fpr_orig, tpr_ci[0], tpr_ci[1], colorblue, alpha0.2, label95%置信区间)plt.plot([0, 1], [0, 1], colorgray, linestyle–) # 随机猜测线plt.xlim([0.0, 1.0])plt.ylim([0.0, 1.05])plt.xlabel(假正率,colorcolor1, fontsizesize)plt.ylabel(召回率,colorcolor1, fontsizesize)plt.title(ROC曲线 - 95%置信区间)4.4 特征重要性 def get_feature_importances():x_data features_rf[特征].tolist()y_data features_rf[重要度].tolist()fig plt.figure(figsize(12, 6), dpi80)ax fig.add_axes((0.1, 0.1, 0.8, 0.8))ax.set_xlim(0, 0.1)ax.tick_params(both, colorscolor1, labelsizesize)bars ax.barh(x_data, y_data, colorrange_color[1])for bar in bars:w bar.get_width()ax.text(w0.001, bar.get_y()bar.get_height()/2, %.4f%w, haleft, vacenter)plt.xlabel(重要度,colorcolor1, fontsizesize)plt.ylabel(特征,colorcolor1, fontsizesize)plt.title(随机森林特征重要性,size16)plt.grid(True, whichboth, linestyle–, linewidth0.5)plt.tight_layout()plt.show()点击转化率、每次访问平均在网站上花费的时间、点击率、每次访问网站总页数、营销花费、忠诚度积分、访问网站总次数、电子邮件被打开次数等特征对用户是否转化有显著性影响。 ️ 5. 总结 通过对特征量进行分析可以看出年龄、营销活动传递渠道、营销类型等特征对用户是否转化没有显著的影响营销花费、点击率、点击转化率、访问网站总次数、每次访问平均在网站上花费的时间等特征对用户是否转化有显著的影响。通过KNN和随机森林模型的预测对比随机森林的模型准确性、AUC数值方面要优于KNN近邻模型可以通过该模型去预测用户北转化的概率。从特征重要性图中可以看出点击转化率、每次访问平均在网站上花费的时间、点击率、每次访问网站总页数、营销花费、忠诚度积分、访问网站总次数、电子邮件被打开次数等特征对用户是否转化有显著性影响后期营销策略应着重优化这些方面以提高用户的转化率。 ️ 6. 可视化项目源码数据 点击跳转【全部可视化项目源码数据】 以上就是本期为大家整理的全部内容了赶快练习起来吧原创不易喜欢的朋友可以点赞、收藏也可以分享注明出处让更多人知道。