week19 推荐系统眼中的你

383 阅读4分钟

为什么需要用户画像,对于业务来说有何帮助

我们已经进入到互联网的下半场,增长的动力来自数据驱动

而数据分析的出发点,来自于对用户行为及需求的洞察

可以帮我们解决三个问题

都是谁

从哪来

到哪去

有哪些维度可以用来设计用户标签

八字原则:用户消费行为分析

用户标签:性别、年龄、地域、收入、学历、职业等

消费标签:消费习惯、购买意向、是否对促销敏感

行为标签:时间段、频次、时长、收藏、点击、喜欢、评分

(User Behavior可以分成Explicit Behavior和Implicit Behavior)

内容分析:对用户平时浏览的内容进行分析,比如体育、游戏、八卦

用户生命周期的三个阶段

获客:如何进行拉新,通过更精准的营销获取客户;

粘客:个性化推荐,搜索排序,场景运营等;

留客:流失率预测,分析关键节点降低流失率。

标签从何而来

典型的方式有:

• PGC:专家生产

• UGC:普通生产

标签是对高维事物的抽象(降维)

聚类算法:K-Means,EM聚类,Mean-Shift,DBSCAN,层次聚类,PCA

• 对大量的数据需要标注(打标签)

• 利用用户标签,对商品进行推荐(推荐算法)

K-Means工作原理

KMeans:

• Step1, 选取K个点作为初始的类中心点,这些点一般都是从数据集中随机抽取的;

• Step2, 将每个点分配到最近的类中心点,这样就形成了K个类,然后重新计算每个类的中心点;

• 重复Step2,直到类不发生变化,或者你也可以设置最大迭代次数,这样即使类中心点发生变化,但是只要达到最大迭代次数就会结束

数据规范化的方法:Min-max,Z-Score,小数定标

Min-max规范化

将原始数据投射到指定的空间[min,max]

新数值 = (原数值-极小值)/ (极大值 - 极小值)

当min=0, max=1时,为[0,1]规范化

sklearn中的MinMaxScaler

数据规范化的方式:

进行[0, 1]规范化之后,可以让不同维度的特征数据,在同一标准下可以进行比较

Z-Score规范化

将原始数据转换为正态分布的形式

新数值 = (原数值 - 均值)/ 标准差

sklearn中的preprocessing.scale()

数据规范化的方式:

新数值 = (原数值 - 均值)/ 标准差

当前用得最多的数据标准化方式。

回答了这样一个问题:"给定数据距离其均值多少个标准差"

小数定标规范化

通过移动小数点的位置来进行规范化

使用numpy

数据规范化的方式:

评测指标:准确率,召回率,精确率,F值

什么是TF-IDF

TF:Term Frequency,词频

一个单词的重要性和它在文档中出现的次数呈正比。

IDF:Inverse Document Frequency,逆向文档频率

一个单词在文档中的区分度。这个单词出现的文档数越少,区分度越大,IDF越大

基于内容的推荐系统步骤

• 物品表示 Item Representation:

为每个item抽取出features

• 特征学习Profile Learning:

利用一个用户过去喜欢(不喜欢)的item的特征数据,来学习该用户的喜好特征(profile);

• 生成推荐列表Recommendation Generation:

通过用户profile与候选item的特征,推荐相关性最大的item。

• 标签可以作为用户的画像Profile,也可以作为Item的特征

• User=>Item之间的匹配程度:

ü SimpleTagBased

ü NormTagBased

ü TagBased-TFIDF

ü 聚类是一种降维的方式,距离的定义

ü 定义用户画像的维度(用户、消费、行为、内容),从而指导业务

ü 围绕用户生命周期开展业务(获客、粘客、留客)

ü 数据处理的层次:数据源 => 算法层 => 业务层

ü 标签是一种抽象能力,通过对用户画像进行Profile Learning,同时对item提取标签,从而可以完成基于标签的召回

ü 标签召回计算简单,属于召回的一种策略

MNIST的10种解法

算法

工具

Logistic Regression

from sklearn.linear_model import LogisticRegression

CART**,ID3****(决策树)**

from sklearn.tree import DecisionTreeClassifier

LDA

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

朴素贝叶斯

from sklearn.naive_bayes import BernoulliNB

SVM

from sklearn import svm

KNN

from sklearn.neighbors import KNeighborsClassifier

Adaboost

from sklearn.ensemble import AdaBoostClassifier

XGBoost

from xgboost import XGBClassifier

TPOT

from tpot import TPOTClassifier

keras

import keras

TPOT:基于Python的AutoML工具

TPOT github.com/EpistasisLa… (6.2K)

TPOT可以解决:特征选择,模型选择,但不包括数据清洗

处理小规模数据非常快,大规模数据非常慢。可以先抽样小部分,使用TPOT

TPOT:

• 目前只能做有监督学习

• 支持的分类器主要有贝叶斯、决策树、集成树、SVM、KNN、线性模型、xgboost

• 支持的回归器主要有决策树、集成树、线性模型、xgboost

• 数据预处理:二值化、聚类、降维、标准化、正则化等

• 特征选择:基于树模型、基于方差、基于F-值的百分比

• 可以通过export()方法把训练过程导出为形式为sklearn pipeline的.py文件

重要知识点思维导图: