广告营销用户点击预测分析

广告营销用户点击预测分析

  • 零、数据集以及数据集简介以及任务分析
  • 一、数据预处理
    • 1、加载检查数据
      • (1)特殊特征
      • (2)特殊特征的处理
      • (3)特殊特征处理后生成的新特征
    • 2、数据类型与缺失值处理
      • (1)查看数据信息
      • (2)数据补全以及类型转换
      • (3)补全后的数据
    • 3、异常值分析
  • 二、 探索性分析与特征工程
    • 1、单变量图分析
      • (1)原数据变量分析
      • (2)处理数据
        • 1.添加新特征
        • 2.id映射
      • (3)数据处理后变量分析
    • 2、相关性关系分析
      • (1)计算相关矩阵
      • (2)热力图显示
    • 3、特征工程与特征选择
    • 4、双变量图分析
    • 5、新特征生成
  • 三、机器学习模型交叉验证
    • 1、欠采样并划分数据集
    • 2、归一化
    • 3、不同模型进行交叉验证对比效果
      • (1)决策树
      • (2)贝叶斯
      • (3)随机森林
      • (4)bagging
      • (5)ada boosting
      • (6)逻辑回归
      • (7)深度学习全连接模型
      • (8)随机梯度下降
      • (9)xgboost
      • (10)GradientBoosting
      • (11)投票器
    • 4、精度和召回率
    • 5、logloss
  • 四、对模型进行超参数调整
    • 1、针对最佳模型,进行超参数优化
    • 2、评估效果
  • 五、结论
    • 得出结论性分析

零、数据集以及数据集简介以及任务分析

项目任务:

根据海量广告投放的用户点击数据,通过机器学习构建预测模型预估用户的是否进行广告点击,即给定某条广告相关的媒体、上下文内容等信息和用户标签的条件下,预测这个用户是否点击此广告。我们的任务就是通过分析数据,对于数据进行

训练数据集
train1.txt和train2.txt
两个数据集可以使用pandas读入

字段说明
instance_id样本id
click是否点击
adid广告id
advert_id广告主id
orderid订单id
advert_industry_inner广告主行业
advert_name广告主名称
campaign_id活动id
creative_id创意id
creative_type创意类型
creative_tp_dnf样式定向id
creative_has_deeplink响应素材是否有deeplink(Boolean)
creative_is_jump是否是落页跳转(Boolean)
creative_is_download是否是落页下载(Boolean)
creative_is_js是否是js素材(Boolean)
creative_is_voicead是否是语音广告(Boolean)
creative_width创意宽
creative_height创意高
app_cate_idapp分类
f_channel一级频道
app_id媒体id
inner_slot_id媒体广告位
app_paidapp是否付费
user_tags用户标签信息,以逗号分隔
city城市
carrier运营商
time时间戳
province省份
nnt联网类型
devtype设备类型
os_name操作系统名称
osv操作系统版本
os操作系统
make品牌(例如:apple)
model机型(例如:“iphone”)

一、数据预处理

1、加载检查数据

data = pd.read_csv("train1.txt",sep='\t')
data.append(pd.read_csv("train2.txt",sep='\t'))

在这里插入图片描述

(1)特殊特征

我们可以看到user_tags这个特征和其他的有很大的区别,他包含了多个特征,并且每个数据所含的user_tags的特征并不相同,所以为了方便后期处理我们先把user_tags特征从data中分离出来单独处理

user_tags = data["user_tags"]
data = data.drop("user_tags", axis=1)

(2)特殊特征的处理

由于user_tags特征较为特殊,并且长度不唯一,所以我们采用以下方式对他进行处理

1.补全空数据,这里默认为空的数据即为没有任何标签,在这里我们规定设为标签‘0’
2.统计每种用户标签在用户中出现的次数
3.取前save_n个在用户中出现的最多作为保留标签
4.假设数据条数为n,建立一个形状为(n,save_n)的二维零矩阵:user_tags_mark
5.如果第i条数据的用户标签中存在保留标签j,我们将user_tags_mark的第i行第j列置为1
6.为了方便之后对新数据进行预测,我们将标签对应的出现次数:tags_dict以及user_tags和user_tags_mark的映射关系tags_map一并保存下来
def get_tags(user_tags, save_n):user_tags.fillna('0', inplace=True)tags_dict = dict()for i in range(len(user_tags)):tl = user_tags[i].split(',')for t in tl:if t in tags_dict.keys():tags_dict[t] += 1else:tags_dict[t] = 1tags_dict = sorted(tags_dict.items(), key=lambda x:x[1], reverse=True)[:save_n]tags_dict = {key:value for key, value in tags_dict}tags_map = {key:value for value, key in enumerate(tags_dict.keys())}user_tags_mark = np.zeros((len(user_tags), len(tags_map)))for i in range(len(user_tags)):tl = user_tags[i].split(',')for t in tl:if t in tags_map.keys():user_tags_mark[i][tags_map[t]] += 1return user_tags, tags_dict, tags_map, user_tags_markuser_tags, tags_dict, tags_map, user_tags_mark = get_tags(user_tags, 20)

(3)特殊特征处理后生成的新特征

在这里插入图片描述

2、数据类型与缺失值处理

(1)查看数据信息

data.info()

在这里插入图片描述

可以看到其中的make, model, osv, os_name, advert_industry_inner, f_channel, inner_slot_id, advert_name,app_cate_id, app_id都有缺失。但他们的补全方式不相同,其中make~advert_name的类型是object,观测数据后发现均是以字符串形式存储的数据、相关信息的缺失可以认为是由于技术手段或者用户不愿意透露导致的,所以这一部分信息的缺失本身也传达着一种信息,所以我们这里将这一类型的数据缺失标记为“NaN”,意为找不到其他数据信息。而app_cate_id, app_id数据类型为float,这里使用中位数来补全以反映大多数的情况。

注:此时的数据已经将user_tags分离出去了

(2)数据补全以及类型转换

由于计算机不能够对字符串格式的数据进行运算,所以我们要将字符串转换为计算机能够理解的标签,我们在数据补全的同时使用OrdinalEncoder将objects_list中的特征转换为标签的格式,并且将字符串和标签的对应关系保存下来(objects_cates)

objects_list = ["make", "model", "osv", "os_name", "advert_industry_inner", "f_channel", "inner_slot_id", "advert_name"]
floats_list = ["app_cate_id", "app_id"]def Completer(data, bool_list=[], objects_list=[], floats_list=[]):from sklearn.preprocessing import OrdinalEncoderobjects_cates = dict()flag = Falsefor obj in objects_list:flag = Truedata[obj].fillna("NaN", inplace=True)data_cat = data[[obj]]encoder = OrdinalEncoder()data_cat = encoder.fit_transform(data_cat)cate_dict = dict()categories = encoder.categories_[0]for i in range(len(categories)):cate_dict[categories[i]] = iobjects_cates[obj] = cate_dictdata[obj]=data_cat.reshape(-1, 1)[:,0]for f in floats_list:median = data[f].median()data[f].fillna(median, inplace=True)return data, objects_cates, flagdata, objects_cates, flag = Completer(data, bool_list, objects_list, floats_list)

(3)补全后的数据

在这里插入图片描述

3、异常值分析

运用EllipticEnvelope和KNNImputer识别异常值并进行修改

bool_list = ["creative_is_jump", "creative_is_download", "creative_is_js", "creative_is_voicead", "creative_has_deeplink", "app_paid"]def OutlierHander(data, boll_list):from sklearn.covariance import EllipticEnvelopefrom sklearn.impute import KNNImputerimport numpy as npfor b in bool_list:data[b] = data[b].astype(np.float64)detector = EllipticEnvelope() # 构造异常值识别器detector.fit(data) # 拟合识别器idx = detector.predict(data) == -1# 预测异常值ls = [i for i in range(len(data))]data[idx] *= np.nanimputer = KNNImputer()data = imputer.fit_transform(data)   return datadata = OutlierHander(data, bool_list)

注:1.这个函数的运行过程会非常慢;2.要将所有的bool类型转换之后才能进行补全

二、 探索性分析与特征工程

众所周知,用户标签(user_tags)可以表明一个一个用户的偏好,从而一定程度上反映用户是否会对广告进行点击。但是这个标签是多维度的数据,尤其是在我们利用用户标签生成新的特征(user_tags_mark)之后,只取一部分用户标签信息来进行分析很明显会引导我们进入一个误区,所以我们在这里保留用户标签这个特征不做分析

1、单变量图分析

(1)原数据变量分析

data.hist(bins=51, figsize=(20, 15))
plt.show()

在这里插入图片描述
从图中可以看到:
1.样本id(instance_id)分布比较均匀,并且按照生活常识来讲他对是否点击广告没有什么影响,所以可以去掉这一特征
2.数据的分布的时间(time)呈周期性,说明收集到的数据跟时间相关,在不同时间段中能收集到的数据不同表明不同时间用户看到广告的次数不同,所以我们需要添加新特征,如:周、月特征
3.省份、城市、媒体id、广告id、广告主id、订单id、活动id、创意id、样式定向id由于编码问题会影响作图效果以及后续的训练效果,所以在这里我们做了一个数据映射
4.点击和不点击的数据正负样本不均衡,在训练前应该进行欠采样,即减少对负样本的采样

(2)处理数据

1.添加新特征

data["time"] = pd.to_datetime(df['time'],unit='s',origin=pd.Timestamp('1970-01-01'))
data["month"] = data["time"].dt.month
data["dayofweek"] = data["time"].dt.dayofweek

2.id映射

city_dict = {key:value for value, key in enumerate(set(data["city"]))}for key, value in city_dict.items():tmp = data[data["city"] == key]tmp["city"] = valuedata[data["city"] == key] = tmpprovince_dict = {key:value for value, key in enumerate(set(data["province"]))}for key, value in province_dict.items():tmp = data[data["province"] == key]tmp["province"] = valuedata[data["province"] == key] = tmp campaign_id_dict = {key:value for value, key in enumerate(set(data["campaign_id"]))}for key, value in campaign_id_dict.items():tmp = data[data["campaign_id"] == key]tmp["campaign_id"] = valuedata[data["campaign_id"] == key] = tmp app_id_dict = {key:value for value, key in enumerate(set(data["app_id"]))}for key, value in app_id_dict.items():tmp = data[data["app_id"] == key]tmp["app_id"] = valuedata[data["app_id"] == key] = tmp adid_dict = {key:value for value, key in enumerate(set(data["adid"]))}for key, value in adid_dict.items():tmp = data[data["adid"] == key]tmp["adid"] = valuedata[data["adid"] == key] = tmp advert_id_dict = {key:value for value, key in enumerate(set(data["advert_id"]))} for key, value in advert_id_dict.items():tmp = data[data["advert_id"] == key]tmp["advert_id"] = valuedata[data["advert_id"] == key] = tmp orderid_dict = {key:value for value, key in enumerate(set(data["orderid"]))} for key, value in orderid_dict.items():tmp = data[data["orderid"] == key]tmp["orderid"] = valuedata[data["orderid"] == key] = tmp campaign_id_dict = {key:value for value, key in enumerate(set(data["campaign_id"]))} for key, value in campaign_id_dict.items():tmp = data[data["campaign_id"] == key]tmp["campaign_id"] = valuedata[data["campaign_id"] == key] = tmp creative_id_dict = {key:value for value, key in enumerate(set(data["creative_id"]))} for key, value in creative_id_dict.items():tmp = data[data["creative_id"] == key]tmp["creative_id"] = valuedata[data["creative_id"] == key] = tmp creative_tp_dnf_dict ={key:value for value, key in enumerate(set(data["creative_tp_dnf"]))} for key, value in creative_tp_dnf_dict.items():tmp = data[data["creative_tp_dnf"] == key]tmp["creative_tp_dnf"] = valuedata[data["creative_tp_dnf"] == key] = tmp 

(3)数据处理后变量分析

在这里插入图片描述

2、相关性关系分析

(1)计算相关矩阵

columns = ["tag"+str(i) for i in range(20)]
tags_mark = pd.DataFrame(user_tags_mark, columns=columns)
tags_mark["click"] = data["click"]
data_corr =data.corr()
tags_corr = tags_mark.corr()

(2)热力图显示

data:

plt.matshow(data_corr, cmap=plt.cm.gray)
plt.show()

在这里插入图片描述
tags_mark:0

plt.matshow(tags_corr, cmap=plt.cm.gray)
plt.show()

在这里插入图片描述
数值越大表明数据相关性越强,在图像中的颜色就越亮,根据data的相关矩阵生成的热力图有几行/列特别亮并不是因为他们的相关性特别强,而是因为相关性过弱导致数值成立NaN。同时可以看到tags_mark整体都比较亮,说明整体tags的相关性较强。但是data和tags的相关性并不大,说明带预测的结果与特征不是线性相关的,需要多个数据共同作用

3、特征工程与特征选择

data_corr["click"].sort_values(ascending=True)

在这里插入图片描述

tags_corr["click"].sort_values(ascending=True)

在这里插入图片描述
这里我们选用data中相关性较强的特征,而tags_ mark完全保留

4、双变量图分析

from pandas.plotting import scatter_matrixattributes1 = ["creative_tp_dnf", "campaign_id", "creative_width", "creative_height", "app_id", "advert_name", "creative_type", "click"]scatter_matrix(data[attributes1], figsize=(12, 8))
plt.show()

在这里插入图片描述
可以看到数据之间的联系不大,所以也不存在线性关系

5、新特征生成

在上面的数据分析的过程中已经生成了新特征:dayofweek, month和、user_tags_mask
现在需要将data中相关性较大的特征和tags_mark特征数据合并在一起

new_data = pd.concat([data[attributes1], tags_mark], axis=1)
new_data.tail()

在这里插入图片描述

三、机器学习模型交叉验证

1、欠采样并划分数据集

from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from random import shuffleidx = [i for i in range(len(new_data[new_data["click"] == 0]))]
shuffle(idx)
idx = idx[:len(new_data[new_data["click"] == 1])]data_0 = new_data[new_data["click"] == 0]
data_sample = data_0.sample(n=len(new_data[new_data["click"] == 1]))new_data = data_sample.append(new_data[new_data["click"] == 1])x_train, x_test,  y_train, y_test = train_test_split(new_data.drop("click", axis=1), new_data["click"], test_size = 0.3, random_state = 7)

2、归一化

data_std = StandardScaler()
data_std.fit(x_train)
x_train = data_std.transform(x_train)
x_test = data_std.transform(x_test)

3、不同模型进行交叉验证对比效果

由于数据较大,考虑到效率问题首先排除KNN和SVM

(1)决策树

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_scoretree = DecisionTreeClassifier()
tree.fit(x_train, y_train)
cross_val_score(tree, x_test, y_test)

在这里插入图片描述

(2)贝叶斯

from sklearn.naive_bayes import BernoulliNBnb = BernoulliNB()
nb.fit(x_train, y_train)
cross_val_score(nb, x_test, y_test)

在这里插入图片描述

(3)随机森林

from sklearn.ensemble import RandomForestClassifierrd_tree = RandomForestClassifier()
rd_tree.fit(x_train, y_train)cross_val_score(rd_tree, x_test, y_test)

在这里插入图片描述

(4)bagging

from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifierbag_clf = BaggingClassifier(DecisionTreeClassifier(), n_estimators=100)
bag_clf.fit(x_train, y_train)print("bagging:")
print("交叉验证:", cross_val_score(sgd, x_test, y_test))
print("精度:", precision_score(y_test, bag_clf.predict(x_test)))
print("召回率:", recall_score(y_test, bag_clf.predict(x_test)))

在这里插入图片描述

(5)ada boosting

from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifierada_clf = AdaBoostClassifier(DecisionTreeClassifier(), n_estimators=100)
ada_clf.fit(x_train, y_train)print("ada:")
print("交叉验证:", cross_val_score(ada, x_test, y_test))
print("精度:", precision_score(y_test, ada_clf.predict(x_test)))
print("召回率:", recall_score(y_test, ada_clf.predict(x_test)))

在这里插入图片描述

(6)逻辑回归

from sklearn.linear_model import LogisticRegressionreg = LogisticRegression()
reg.fit(x_train, y_train)
cross_val_score(reg, x_test, y_test)

在这里插入图片描述

(7)深度学习全连接模型

def to_one_hot(y):ans = np.zeros((len(y), 2))for i in range(len(y)):ans[i][y[i]] = 1return ansy_train_hot = to_one_hot(y_train)
y_test_hot =to_one_hot(y_test)from keras.callbacks import EarlyStopping, ModelCheckpoint
from keras.layers import Dense, Input
from keras.models import Modelearly_stopping_cb = EarlyStopping(patience=5, restore_best_weights=True)
checkpoint_cb = ModelCheckpoint("datas.h5", save_best_only=True)data_input = Input(shape=(27,))
data_layer1 = Dense(128)(data_input)
data_layer2 = Dense(64)(data_layer1)
data_layer3 = Dense(32)(data_layer2)
data_layer4 = Dense(2)(data_layer3)data_model = Model(data_input, data_layer4)
data_model.compile(optimizer='rmsprop',loss='binary_crossentropy', metrics=['acc'])
data_history = data_model.fit(np.array(list(x_train)), np.array(list(y_train_hot)), epochs=100, validation_split=0.2, batch_size=128, callbacks=[early_stopping_cb, checkpoint_cb])

在这里插入图片描述

(8)随机梯度下降

from sklearn.linear_model import SGDClassifiersgd = SGDClassifier()
sgd.fit(x_train, y_train)
cross_val_score(sgd, x_test, y_test)

在这里插入图片描述

(9)xgboost

from xgboost import XGBClassifier
from sklearn.metrics import log_lossxgb = XGBClassifier()
xgb.fit(x_train, y_train, eval_metric="logloss")

(10)GradientBoosting

由于GradientBoosting属于弱分类器,所以我们这里使用bagging将他集成起来以达到更好的效果

from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import BaggingClassifiergbc = GradientBoostingClassifier()
gbc_bag = BaggingClassifier(gbc, n_estimators=80)
gbc_bag.fit(x_train, y_train)

(11)投票器

from sklearn.ensemble import VotingClassifiervot_clf = VotingClassifier(estimators=[('xgb_clf', xgb),('gbc_bag_clf', gbc_bag)], voting = 'soft')vot_clf.fit(x_train, y_train)cross_val_score(vot_clf, x_test, y_test, cv=5)

4、精度和召回率

决策树随机森林baggingada boosting逻辑回归深度学习全连接模型随机梯度下降贝叶斯
测试数据精度0.6320.6350.6340.6330.6110.5010.6060.613
测试数据召回率0.7830.8160.8120.80950.9260.3260.9510.867

5、logloss

决策树随机森林baggingada boosting逻辑回归深度学习全连接模型随机梯度下降贝叶斯xgboostGradientBoosting
测试数据logloss13.291.000.590.740.5811.013.570.780.4230.429
从上表中可以看到本问题适合使用基于树和集成学习的模型

四、对模型进行超参数调整

1、针对最佳模型,进行超参数优化

根据上述分析我们可以得到这样一张表

决策树随机森林baggingada boosting逻辑回归深度学习全连接模型随机梯度下降贝叶斯xgboostGradientBoosting
测试数据准确率0.6640.6690.6660.6640.6670.6720.6660.657--
测试数据精度0.6320.6350.6340.6330.6110.5010.6060.613--
测试数据召回率0.7830.8160.8120.80950.9260.3260.9510.867--
测试数据logloss13.291.000.590.740.5811.013.570.780.4230.429

综合考虑下我们选用xgboost和GradientBoosting进行参数优化

2、评估效果

对xgboost和GradientBoosting模型评估并调参后得到的结果

xgboostGradientBoosting
logloss0.4170.416

五、结论

得出结论性分析

随机梯度下降模型虽然在精度上表现一般,但是在准确率和召回率上表现很好,尤其是召回率,他的召回率的最高的。逻辑回归的召回率相对较低,logloss较低,但是logloss仍然没达到一个令人满意的程度,xgboost和GradientBoosting的logloss是全体模型中最低的。根据投放广告的实际需求我们可以选择不同的模型,如果苛求每个会点击的用户都能看到广告可以盲目的追求召回率来选择随机梯度下降;如果对logloss有要求,但是要求不高,可以选择逻辑回归;如果侧重于logloss可以选择xgboost和GradientBoosting如果追求更好的效果还可以使用投票器选择最符合评判标准的模型进行投票还可以选择LGBM或者选用对xgboost和GradientBoosting集成学习来获取更好的结果

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

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

相关文章

雅思阅读真经总纲_雅思天团集训课流程介绍

欢迎宝宝们来到我们为期7天的雅思天团集训营,下面来给大家介绍一下这7天你将如何度过~ 课程简介及课前准备 本次课程时间为7天,第一天需要同学们提早到场进行签到,最后一天还给同学们安排了有关留学的讲座,为大家介绍2021年留学政…

全渠道数字化营销平台

01 互联网行业背景 在数字经济时代,用户面临的消费场景和沟通场景都更加碎片化。因此,企业急需一款数字化营销工具打造属于自己的用户数据池,深入整合、挖掘现有数据,以更高效、更个性化的方式进行营销活动,实现与用户…

数字化营销服务-如何进行数字化营销?

1、数字营销服务:如何进行数字营销? 第二点是数字营销对比电视、广播等传统营销方式的解读; 第三点是数字营销带来的红利的解读。很多人认为数字营销是一种低成本获取流量的方式,但这其实是一种偏见; (2)尽可能的数…

【PythonBA】商业分析:Business Analytics 的理解

猛戳订阅! 👉 《一起玩蛇》🐍 📜 本章目录: Ⅰ. BA 的基础概念 0x00 什么是商业分析(Business Analytics) 0x01 Explain 和 Predict

利用大数据精准营销,给消费者一个选You的理由!

【数据猿导读】大数据是社会科学重要的进展,但企业要精准抓住未来,经理人要拥有更好的决断力,还是要基于对不同人、不同性的理解,而不仅是科技工具的使用而已。 官网 | www.datayuan.cn 微信公众号ID | datayuancn 尺有所短&#…

关于数字化营销,最通俗的讲解在这里

文章来源:微信公众号接地气学堂 作者:接地气的陈老师 营销向来是各种玄幻词汇出没之地,特别是阿里高调大喊“数字化转型”以后,又冒出来一个“数字化营销”。搞得很多做数据的同学一脸蒙圈:咋个又数字化了&#xff0…

数字化营销怎么做?数字化营销系统有什么特点?

在当今数字化时代,企业想成功做到数字化转型,就要将数字营销与企业发展战略相结合,使用新的营销方式、模式和策略,打通经营的各个环节。数字化营销有哪些特点? 一、业务统一 使用数字化营销系统,可以打通企…

营销系列(1)数字营销通识——广告人应掌握的营销、广告概念

广告是由可识别的出资人通过各种媒介,通常是有偿的、有组织的和非人员性劝服的,进行有关产品(商品、服务和观点)的信息传播活动。—— William Arens 《当代广告学》 数字营销简介 1、营销的概念 企业为获得利益回报而为顾客创造…

2023商业版ChatGPT网页版源码V4.4+有后台/功能配置多

正文: 4.4版本来了 V4.4 新增注册用户赠送次数自定义 修复前端密钥明文 V4.3 优化首页加载CSS 之前加载的时候div块会往左边跑 代码安全性逻加强 优化首页输入框换行过高的问题 安装教程: 搭建宝塔 解析域名 上传程序至根目录 配置数据库信息:lib/config.php 导入…

PAT乙级1005解题心路,关于测试点1答案错误与3,4段错误

最近在做PAT上的题,做到1005硬是做了很久,老有错误,最后终于做对了,随便写一点东西吧。 话不多说先上题: 继续(3n1)猜想 (25) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复…

解题的错误在哪?

题目是有三个整数a&#xff0c;b&#xff0c;c&#xff0c;有键盘输入&#xff0c;输出最大的数 #include<stdio.h> int main() {double a,b,c,max,max1;scanf("%lf,%lf,%lf",&a,&b,&c);if(a>b)maxa;elsemaxb;if(max>c)max1max;elsemax1c;p…

计算错题集(有错误就加入错题集,持续更新)

VASP计算错题集 万事开头难&#xff0c;学习第一性原理计算的一年中碰到了很多让我困惑的问题&#xff0c;在这里总结整理出来(随时更新)&#xff0c;防止师弟师妹们陷入困惑&#xff0c;真的很让人头大&#xff0c;并且超级费时间&#xff0c;希望能帮助避雷&#xff01;如果师…

开源大模型LLaMA 2会扮演类似Android的角色么?

在AI大模型没有商业模式&#xff1f;等文章中&#xff0c;我多次表达过这样一个观点&#xff1a;不要把大模型的未来应用方式比喻成公有云&#xff0c;大模型最终会是云端操作系统的核心&#xff08;新通用计算平台&#xff09;&#xff0c;而它的落地形式会很像过去的沃森&…

中国XR产业投融资热点

导读&#xff1a; 全球XR硬件行业进入恢复增长期&#xff0c;2022年出货量超1,000万台;技术迭代和内容生态完善将释放市场潜力:中国XR头显设备市场在全球市场的占比有望持续提升。 VR硬件主要分为一体式VR硬件和外接式VR硬件:凭借轻便可移动的优势&#xff0c;一体式VR硬件逐渐…

2023年中国共享充电宝行业趋势

导读&#xff1a; 共享充电宝行业经过多年快速发展&#xff0c;大部分曾经的创业企业已经被淘汰或者业务转型&#xff0c;头部品牌梯队已经形成&#xff0c;头部品牌的竞争壁垒已经建立。从共享充电宝的竞争格局来看&#xff0c;怪兽充电、竹芒科技&#xff08;街电搜电&#x…

2023年中国银行业调查报告

导读&#xff1a; 本次报告涵盖中国经济金融形势分析、银行业发展回顾及展望、监管政策解读、行业热点话题、银行业绩数据等主要内容。我们特别邀请了来自毕马威中国银行业各服务条线咨询团队的专家&#xff0c;以全新的研究视角和方法论聚焦银行业数字化转型、可持续发展、风险…

2023顺风车行业社会价值报告

导读&#xff1a; 本次报告分为四个部分&#xff0c;以嘀嗒顺风车大数据、嘀嗒顺风车用户调研、嘀嗒顺风车缓堵研究、以及专家学者洞见为基础&#xff0c;从提升大众出行福祉、创新缓堵和减碳、促进集约和分享理念普及、增进社会信任友善与温暖四个方面&#xff0c;对顺风车社会…

2023信创软件品牌影响力研究报告

导读&#xff1a; 信创的发展正在逐渐从政策和技术驱动的基础上向市场需求驱动转变。在未来&#xff0c;除了注重合规要求、产品性能和价格因素&#xff0c;厂商还需要持续加强相关产品在市场中的认知和品牌影响力。科技企业应当把品牌塑造也放在重要位置&#xff0c;积极开展针…

2023年中国家装新趋势洞察报告

导读&#xff1a; 消费升级催生了如绿色/环保、品质/健康、高效/便捷、功能/实用、个性/美观等家装新需求&#xff0c;而从个性化设计到整装服务再到产品严选的一站式家装解决方案&#xff0c;以及低碳化、健康化、智能化、适老化、氛围感等家装产品升级&#xff0c;使得家装新…