特征工程
-
(样本)数据
- 特征数据:自变量
- 目标数据(标签):因变量
-
载体:通常不在数据库中 ①数据大很难储存读写;②格式不符合机器学习要求的数据格式。
储存在文件中(csv)
UCI 数据集 -
应用:智能客服、ET 医疗(人类医生的平均准确率为60%-70%,而当下算法的准确率已经达到85%)、投放广告
from sklearn.feature_extraction.text import CountVectorizer
vector = CountVectorizer()
res = vector.fit_transform(['life is short, I love python','life is too long,I hate python'])
print(res) # sparse 矩阵
print(vector.get_feature_names())
print(res.toarray()) # 把 sparse 矩阵转换成数组
# 有分隔符可以分割出中文短语
# 单字母不统计,每个数字表示单词出现的次数
# (0, 2) 1
# (0, 1) 1
# (0, 6) 1
# (0, 4) 1
# (0, 5) 1
# (1, 2) 1
# (1, 1) 1
# (1, 5) 1
# (1, 7) 1
# (1, 3) 1
# (1, 0) 1
# ['hate', 'is', 'life', 'long', 'love', 'python', 'short', 'too']
# [[0 1 1 0 1 1 1 0]
# [1 1 1 1 0 1 0 1]]
# 对中文抽取词汇
import jieba
jb = jieba.cut('我是一个好人,你是一头猪。')
content = list(jb)
print(content)
# ['我', '是', '一个', '好人', ',', '你', '是', '一头', '猪', '。']
模型
是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。
监督学习(supervised learning)
- 分类问题(classification): 1 or 0 离散
- 回归问题(regression) : y = kx or y = kx2 … 连续
无监督学习(unsupervised learning)
Cocktail party problem algorithm
线性回归
- 损失函数(square error function)
- 梯度下降(Gradient descent)
代价函数曲线最低点对应左图的函数即线性回归的目标函数最好的拟合点
线性代数知识
最小二乘法
决策树与分类算法
ID3 算法
熵(entropy) 越小 确定性越大 有用信息越少
信息增益:分支属性对于样本集分类好坏程度的度量。
样本集 S 以 A 为分支属性的信息增益 Gain 为 Entropy(S)减去分支属性分裂后各数据的熵分别乘上对应样本占总样本的比(自己描述的好复杂。。)
信息增益最大对应的分类属性具有最强的区分样本能力。
朴素贝叶斯
- 条件概率(Conditional probability),指在事件B发生的情况下,事件A发生的概率,用P(A|B)表示。
- 将出现数初始化为1,并将分母初始化为2。这种做法就叫做拉普拉斯平滑(Laplace Smoothing)又被称为加1平滑,是比较常用的平滑方法,它就是为了解决0概率问题。
- 通过求对数可以避免下溢出或者浮点数舍入导致的错误。同时,采用自然对数进行处理不会有任何损失。