python之scikit-learn

目录

特征工程

选择模型

调整模型

模型融合


官方文档:http://scikit-learn.org/stable/#

python之scikit-learn_第1张图片

 

input--模型-output

数据分析是为了发现规则

数据分析--数据挖掘和机器学习,算法相同

推荐系统

语音识别--科大讯飞,百度垄断,比较成熟,自然语言的分支

机器视觉--卷积神经网络,图像识别,图片搜索,目标检测(无人驾驶)

NLP--聊天机器人,机器翻译,金融,與情分析

自动驾驶

垃圾邮件

自然语言??

监督学习:输入和输出之间有一定的关系,模型和标准是可靠的

无监督:聚类,分成几个类,评估和标准不可靠,有点问题

强化学习:aphago象棋程序

离散型、类别型

每列:特征(变量)==数据库的字段

每行:样本/样例

 

训练集-训练模型

测试集--评估模型

模型参数的训练

探索性分析

热力图 seaborn模块

几百万数据不算大?一般有多少数据?

交叉验证:多次测试取平均值,基本3-5次

鲁棒性:强壮性,抗噪能力

一般将整个数据集分成测试集和训练集

标准化:去均值和标准差

fit训练

transform转化

fit_transform训练加转化

score评估:R^2的得分

梯度下降GD,随机梯度下降SGD,随机梯度下降用的更多,每一次拿一个样本,可以跳坑,缺点:造成震荡,迭代次数增加,达不到收敛,一般指小批量的随机梯度下降mini_batch

收敛:无限接近

rigde优化所化,svd作为参数

 

python之scikit-learn_第2张图片

特征工程

树模型不用做标准化

选择模型

调整模型

logistic回归的需要调整超参数有:C(正则系数,一般在log域(取log后的值)均匀设置调优)和正则函数penalty(L2/L1) 目标函数为:J(theata) = sum(logloss(f(xi), yi)) + C * penalty logistic回归: f(xi) = sigmoid(sum(wj * xj)) logloss为负log似然损失(请见课件) L2 penalty:sum(wj^2) L1 penalty: sum(abs(wj))

在sklearn框架下,不同学习器的参数调整步骤相同:

  1. 设置候选参数集合
  2. 调用GridSearchCV
  3. 调用fit
from sklearn.linear_model import LogisticRegression

LR_model= LogisticRegression()

#设置参数搜索范围(Grid,网格)
tuned_parameters = {'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000],
              'penalty':['l1','l2']
                   }
# fit函数执行会有点慢,因为要循环执行 参数数目 * CV折数 次模型 训练
LR= GridSearchCV(LR_model, tuned_parameters,cv=10)
LR.fit(X_train,y_train)
print(LR.best_params_)

#模型使用参数
LR_model= LogisticRegression(C=1,penalty='l1')
LR_model1.fit(X_train,y_train)

模型融合

你可能感兴趣的:(python,机器学习)