【52 机器学习 | 基于KNN近邻和随机森林模型对用户转化进行分析与预测】

文章目录

  • 🏳️‍🌈 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), dpi=80)axis1 = fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel('年龄(岁)', color=color1, fontsize=size)axis1.set_ylabel('人数', color=color1, fontsize=size)axis1.tick_params('both', colors=color1, labelsize=size)sns.histplot(df['Age'], kde=True, bins=10)axis1.grid(True, which='both', linestyle='--', linewidth=0.5)plt.title('年龄分布',size=16) 

在这里插入图片描述

def get_Age_analyze2():fig = plt.figure(figsize=(12, 6), dpi=80)axis1 = fig.add_axes((0.1, 0.1, 0.8, 0.8))axis2 = axis1.twinx()# 绘制baraxis1.bar(labels, y_data1, label='人数',color=color1, alpha=0.8)axis1.set_ylim(0, 2500)axis1.set_ylabel('人数', color=color1, fontsize=size)axis1.tick_params('both', colors=color1, labelsize=size)for i, (xt, yt) in enumerate(zip(labels, y_data1)):axis1.text(xt, yt + 50, f'{yt:.2f}',size=size,ha='center', va='bottom', color=color1)# 绘制plotaxis2.plot(labels, y_data2,label='转化率', color=range_color[-1], marker="o", linewidth=2)axis2.set_ylabel('转化率(%)', color=color2,fontsize=size)axis2.tick_params('y', colors=color2, labelsize=size)axis2.set_ylim(80, 90)for i, (xt, yt) in enumerate(zip(labels, y_data2)):axis2.text(xt, yt + 0.3, f'{yt:.2f}',size=size,ha='center', va='bottom', color=color2)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("各年龄人数及转化率分布",size=16)

在这里插入图片描述

  • 客户年龄集中分布在10-70岁之间
  • 不同年龄段的客户转化率波动不大,所以年龄对客户是否转化没有太大影响

3.2 各营销渠道人数及转化率分析

def get_CampaignChannel_analyze():fig = plt.figure(figsize=(12, 6), dpi=80)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='人数',color=range_color[2], alpha=0.8)axis1.set_ylim(0, 2500)axis1.set_ylabel('人数', color=color1, fontsize=size)axis1.tick_params('both', colors=color1, labelsize=size)for i, (xt, yt) in enumerate(zip(x_data, y_data1)):axis1.text(xt, yt + 50, f'{yt:.2f}',size=size,ha='center', va='bottom', color=range_color[2])# 绘制plotaxis2.plot(x_data, y_data2,label='转化率', color=color2, marker="o", linewidth=2)axis2.set_ylabel('转化率(%)', color=color2,fontsize=size)axis2.tick_params('y', colors=color2, labelsize=size)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}',size=size,ha='center', va='bottom', color=color2)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("各渠道人数及转化率分布",size=16)

在这里插入图片描述

  • 五个不同营销渠道的用户转化率波动在2%以内,所以营销渠道对客户是否转化没有太大影响

3.3 各营销类型人数及转化率分析

在这里插入图片描述

  • 不同营销类型的用户转化率波动最大接近10%,所以营销类型对客户是否转化有一定的影响

3.4 营销花费分析

def get_AdSpend_analyze1():fig = plt.figure(figsize=(12, 6), dpi=80)axis1 = fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel('营销花费(美元)', color=color1, fontsize=size)axis1.set_ylabel('人数', color=color1, fontsize=size)axis1.tick_params('both', colors=color1, labelsize=size)sns.histplot(df['AdSpend'], kde=True, bins=10)axis1.grid(True, which='both', linestyle='--', linewidth=0.5)plt.title('营销花费分布',size=16)

在这里插入图片描述
在这里插入图片描述

  • 不同营销花费的用户转化率波动比较明显,最大超过了10%,所以营销花费对客户是否转化有明显的影响

3.5 网站点击率分析

def get_ClickThroughRate_analyze1():fig = plt.figure(figsize=(12, 6), dpi=80)axis1 = fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel('网站点击率(%)', color=color1, fontsize=size)axis1.set_ylabel('人数', color=color1, fontsize=size)axis1.tick_params('both', colors=color1, labelsize=size)sns.histplot(df['ClickThroughRate'], kde=True, bins=10)axis1.grid(True, which='both', linestyle='--', linewidth=0.5)plt.title('网站点击率分布',size=16)

在这里插入图片描述
在这里插入图片描述

  • 不同点击率的用户转化率波动同样比较明显,最大超过了10%,所以点击率对客户是否转化也有明显的影响

3.6 客户访问网站总次数与转化率分析

def get_WebsiteVisits_analyze1():fig = plt.figure(figsize=(12, 6), dpi=80)axis1 = fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel('访问网站总次数', color=color1, fontsize=size)axis1.set_ylabel('人数', color=color1, fontsize=size)axis1.tick_params('both', colors=color1, labelsize=size)sns.histplot(df['WebsiteVisits'], kde=True, bins=10)axis1.grid(True, which='both', linestyle='--', linewidth=0.5)plt.title('访问网站总次数分布',size=16)

在这里插入图片描述
在这里插入图片描述

  • 不同客户访问网站总次数的用户转化率波动比较明显,最大超过了10%,所以客户访问网站总次数对客户是否转化有明显的影响

3.7 客户每次访问网站时间与转化率分析

def get_TimeOnSite_analyze1():fig = plt.figure(figsize=(12, 6), dpi=80)axis1 = fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.set_xlabel('每次访问平均时间', color=color1, fontsize=size)axis1.set_ylabel('人数', color=color1, fontsize=size)axis1.tick_params('both', colors=color1, labelsize=size)sns.histplot(df['TimeOnSite'], kde=True, bins=10)axis1.grid(True, which='both', linestyle='--', linewidth=0.5)plt.title('每次访问平均时间分布',size=16)

在这里插入图片描述
在这里插入图片描述

  • 不同客户每次访问网站时间的用户转化率波动比较明显,所以客户每次访问网站时间对客户是否转化有明显的影响。

🏳️‍🌈 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_score

4.1 各特征相关性热图

def get_model_analyze(): corrdf = data.corr()plt.figure(figsize=(12, 12), dpi=80)sns.heatmap(corrdf, annot=True,cmap="rainbow", linewidths=0.05,square=True,annot_kws={"size":8}, cbar_kws={'shrink': 0.8})plt.title("各特征相关性热图",size=16)

在这里插入图片描述

  • 通过各特征相关性热图可以看出: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_neighbors=k)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_neighbors=best_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), dpi=80)axis1 = fig.add_axes((0.1, 0.1, 0.8, 0.8))axis1.tick_params('both', colors=color1, labelsize=size)axis1.plot(fpr, tpr, color='blue', lw=2, label=f'AUC = {auc:.2f}')axis1.plot([0, 1], [0, 1], color='gray', linestyle='--')plt.xlim([0.0, 1.0])plt.ylim([0.0, 1.05])plt.xlabel('假正率',color=color1, fontsize=size)plt.ylabel('召回率',color=color1, fontsize=size)plt.title(f'ROC曲线 - {type(model).__name__}',size=16)plt.legend(loc="lower right",fontsize=size)

在这里插入图片描述

  • AUC = 0.57
  • AUC = 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_size=0.2, random_state=7)
model = RandomForestClassifier(random_state=15)
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_value="extrapolate")(np.linspace(0, 1, len(fpr_orig)))tpr_interp = interp1d(np.linspace(0, 1, len(tpr_resample)), tpr_resample, fill_value="extrapolate")(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], axis=0)# 绘制ROC曲线和置信区间plt.figure(figsize=(12, 6), dpi=80)plt.plot(fpr_orig, tpr_orig, color='blue', lw=2, label=f'AUC = {auc:.2f}')plt.fill_between(fpr_orig, tpr_ci[0], tpr_ci[1], color='blue', alpha=0.2, label='95%置信区间')plt.plot([0, 1], [0, 1], color='gray', linestyle='--') # 随机猜测线plt.xlim([0.0, 1.0])plt.ylim([0.0, 1.05])plt.xlabel('假正率',color=color1, fontsize=size)plt.ylabel('召回率',color=color1, fontsize=size)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), dpi=80)ax = fig.add_axes((0.1, 0.1, 0.8, 0.8))ax.set_xlim(0, 0.1)ax.tick_params('both', colors=color1, labelsize=size)bars = ax.barh(x_data, y_data, color=range_color[1])for bar in bars:w = bar.get_width()ax.text(w+0.001, bar.get_y()+bar.get_height()/2, '%.4f'%w, ha='left', va='center')plt.xlabel('重要度',color=color1, fontsize=size)plt.ylabel('特征',color=color1, fontsize=size)plt.title('随机森林特征重要性',size=16)plt.grid(True, which='both', linestyle='--', linewidth=0.5)plt.tight_layout()plt.show()

在这里插入图片描述

  • 点击转化率、每次访问平均在网站上花费的时间、点击率、每次访问网站总页数、营销花费、忠诚度积分、访问网站总次数、电子邮件被打开次数等特征对用户是否转化有显著性影响。

🏳️‍🌈 5. 总结

  • 通过对特征量进行分析,可以看出,年龄、营销活动传递渠道、营销类型等特征对用户是否转化没有显著的影响,营销花费、点击率、点击转化率、访问网站总次数、每次访问平均在网站上花费的时间等特征对用户是否转化有显著的影响。
  • 通过KNN和随机森林模型的预测对比,随机森林的模型准确性、AUC数值方面要优于KNN近邻模型,可以通过该模型去预测用户北转化的概率。
  • 从特征重要性图中可以看出,点击转化率、每次访问平均在网站上花费的时间、点击率、每次访问网站总页数、营销花费、忠诚度积分、访问网站总次数、电子邮件被打开次数等特征对用户是否转化有显著性影响,后期营销策略应着重优化这些方面,以提高用户的转化率。

🏳️‍🌈 6. 可视化项目源码+数据

点击跳转:【全部可视化项目源码+数据】


以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/459189.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年下教师资格证面试报名详细流程❗

⏰ 重要时间节点&#xff1a; &#xff08;一&#xff09;下半年笔试成绩查询&#xff1a;11月8日10:00 &#xff08;二&#xff09;注册报名&#xff1a;11月8日10:00-11日18:00 &#xff08;三&#xff09;网上审核&#xff1a;11月8日10:00-11日18:00 &#xff08;四&#x…

vue2之混入(mixin)

Vue 2 的混入&#xff08;Mixin&#xff09;是一种在 Vue 组件中分发可复用功能的方式。通过混入&#xff0c;你可以将一些通用的组件选项&#xff08;如数据、方法、计算属性、生命周期钩子等&#xff09;提取到一个混入对象中&#xff0c;并在多个组件中重用这些选项&#xf…

粉体包覆机、粉体干燥机、球磨机、整形机

包覆改性机在粉体加工中的应用和重要性主要体现在以下几个方面&#xff1a; 1.行业范围广泛&#xff1a;制药&#xff1a;用于药物载体、药物添加剂的生产&#xff0c;通过表面改性改善药物的释放性能、稳定性和生物相容性等&#xff1b;化妆品&#xff1a;用于口红、粉底、眼…

(三)行为模式:11、模板模式(Template Pattern)(C++示例)

目录 1、模板模式含义 2、模板模式的UML图学习 3、模板模式的应用场景 4、模板模式的优缺点 5、C实现的实例 1、模板模式含义 模板模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;将某些步骤…

快速学习:Linux中传输文件夹的10个scp命令

本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法&#xff0c;涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景&#xff0c;旨在帮助用户在不同情…

设计模式(五)原型模式详解

设计模式&#xff08;五&#xff09;原型模式详解 原型模型简介 定义&#xff1a;原型模型是一种创建型设计模型&#xff0c;它允许通过克隆/复制现有对象来创建新的对象&#xff0c;而无需通过常规的构造函数进行实例化。 这种方式的主要优势是在运行时不需要知道具体的类&a…

【C++单调栈】962. 最大宽度坡|1607

本文涉及的基础知识点 C单调栈 LeetCode962. 最大宽度坡 给定一个整数数组 A&#xff0c;坡是元组 (i, j)&#xff0c;其中 i < j 且 A[i] < A[j]。这样的坡的宽度为 j - i。 找出 A 中的坡的最大宽度&#xff0c;如果不存在&#xff0c;返回 0 。 示例 1&#xff1a;…

免费的GB28181设备端EasyGBD,支持国标GB28181-2016和国标GB28181-2022,支持各种ARM系统、国产芯片、信创芯片

现在市面上还有很多卖国标GB28181设备端SDK的&#xff0c;EasyGBD免费的&#xff0c;基于C/C开发的国标GB28181设备库。 技术规格 编程语言&#xff1a;C/C&#xff0c;能适配任何平台&#xff0c;包括但不限于Windows、Linux、Android、ARM视频编解码器&#xff1a;H264、H26…

MPL助力固态前驱体光刻胶,图案化金属氧化物半导体更精密

大家好&#xff01;今天来了解一项金属氧化物增材制造研究——《Ultra-high precision nano additive manufacturing of metal oxide semiconductors via multi-photon lithography》发表于《nature communications》。在现代电子信息领域&#xff0c;金属氧化物半导体至关重要…

【031】基于SpringBoot+Vue实现的在线考试系统

文章目录 系统说明技术选型成果展示账号地址及其他说明源码获取 系统说明 基于SpringBootVue实现的在线考试系统是为高校打造的一款在线考试平台。 系统功能说明 1、系统共有管理员、老师、学生三个角色&#xff0c;管理员拥有系统最高权限。 2、老师拥有考试管理、题库管理…

mpu6050 设置低功耗模式

mpu6050 电源管理寄存器&#xff0c;参考博客&#xff1a;MPU6050学习笔记&#xff08;电源管理器1、2&#xff09; - LivingTowardTheSun - 博客园 (cnblogs.com) 根据手册&#xff0c;设置对应的寄存器即可&#xff1b; 具体代码&#xff1a; #define MPU_PWR_MGMT1_REG …

111.SAP ABAP - Function ALV - 列、行、单元格颜色 - 记录

目录 1.介绍 2.列背景色 3.行背景色 4.单元格背景色 4.1颜色码相关的结构 LVC_T_SCOL LVC_S_SCOL LVC_S_COLO 4.2单元格颜色设置方法 5.ALV 颜色码 1.介绍 在数据展示方面&#xff0c;要求ALV的数据列、行、单元格通过颜色醒目显示&#xff08;颜色展示…

【01】ZooKeeper特性与节点数据类型

1、Zookeeper介绍 ZooKeeper是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来解决分布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来&#xff0c;构成一个高效可靠的原语集&…

掌控板micropython编程实现OLED中显示汉字

掌控板micropython编程实现OLED中显示汉字 1. 介绍 在ESP32中显示中文有很多种办法&#xff0c;例如&#xff0c;使用支持汉字的固件&#xff08;https://blog.csdn.net/weixin_42227421/article/details/134632037&#xff09;&#xff1b;使用PCtoLCD2002软件生成自定义字体…

apache poi导出excel

简介 常见的使用场景 入门 导入maven依赖 <!-- poi --> <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId> </dependency> <dependency><groupId>org.apache.poi</groupId><arti…

机器视觉:9点标定的原理与实现

一、什么是标定 标定就是将机器视觉处理得到的像素坐标转换成实际项目中使用到的毫米坐标。简单说即使看看实际单位距离内有几个像素&#xff0c;如下图所示&#xff0c;10mm的距离内有222个像素&#xff0c;那像素坐标和实际的毫米坐标就有个比例关系了。 二、九点标定 9点标…

【万能软件篇】03-Batchplot_setup_3.5.6(CAD批量打印插件)

批量打印插件&#xff08;Batchplot&#xff09;简介 Batchplot是一个专门针对AutoCAD2000以上版本设计的单DWG多图纸的批量生成布局、批量打印、批量分图工具。自行判定的图框位置与尺寸&#xff0c;根据当前的打印机设置&#xff0c;自动调整打印的方式&#xff0c;实现批量生…

2024 AFS-46 电子数据存在性鉴定(移动终端)(2024能力验证)

一、委托事项 1.给出检材手机的MEID。 2.给出检材手机在2024年7月3日上午连接过的设备名称。 3.给出检材手机中kimi应用最近一次被中断回答的问题内容。 4.给出检材手机中安装过的即时通讯应用的包名&#xff08;不包含虚拟机中的应用&#xff09;。 5.检材手机中安装有几…

C#与C++交互开发系列(十一):委托和函数指针传递

前言 在C#与C的互操作中&#xff0c;委托&#xff08;delegate&#xff09;和函数指针的传递是一个复杂但非常强大的功能。这可以实现从C回调C#方法&#xff0c;或者在C#中调用C函数指针的能力。无论是跨语言调用回调函数&#xff0c;还是在多线程、异步任务中使用委托&#x…

《数字图像处理基础》学习03-图像的采样

在之前的学习中我已经知道了图像的分类&#xff1a;物理图像和虚拟图像。《数字图像处理基础》学习01-数字图像处理的相关基础知识_图像处理 数字-CSDN博客 目录 一&#xff0c;连续图像和离散图像的概念 二&#xff0c;图像的采样 1&#xff0c; 不同采样频率采样同一张图…