Python基础训练营

绪论

    • 解决数据科学任务和挑战
      • Numpy
      • Pandas
    • 解决数据可视化
      • Matplotlib
    • 解决机器学习问题
      • Scikit-learn
      • XGBoost/LightGBM
    • 数据采集
      • Scrapy
    • 解决深度学习任务
      • Tensorflow
      • PyTorch
      • Keras
    • 分布式深度学习
      • Dist-keras
      • elephas
      • spark-deep-learning
    • 自然语言处理
      • NLTK
      • SpaCy
      • Gensim
  • 机器学习项目四大步

    • 问题定义与抽象业务
      • 问题抽象成数学问题,使用算法模型解决
      • 对业务的理解
      • 算法模型使用问题
      • 明确输入输出
    • 数据清洗和特征工程
      • 缺失值
      • 异常值
      • 不规范数据
      • 特征选择
      • 数据降维
    • 算法选择与模型训练
      • 算法模型
      • 模型调用,训练
      • 模型评估指标
    • 模型调优与应用
      • 模型调参
      • 特征优化
      • 模型融合

Python基础知识

编程规范

  • 代码开头
    Python中的代码必须顶格编写,除非被作为语句嵌套在条件判断或者条件循环
  • 代码层级
    第一层顶格编写,第二层开头需要预留4个空格(不考虑跨平台可以使用tab)
  • 对齐方式
    同一个层级的代码必须严格对齐(第一层顶格,第二层空4个空格,第三层空8个空格)
  • 注释
    单行注释:#
    多行注释:首尾处用成对三引号引用即可,“注释”;"””注释””"
  • 代码块
    逻辑判断i以及循环条件while和for条件后均以冒号结尾,然后通过4个空格开始下一层级的实际执行动作语句编写。(冒号后面接上的语句时代码块)

基本数据类型

Number(数字);String(字符串);List(列表)Tuple(元组);Set(集合);Dictionary(字典)

Numpy

numpy属性:
ndim-维度,shape-行数和列数,size-元素个数

Pandas

序列Series和数据框DataFrame

Series类似于NumPy中的一维数组,可以使用一维数组的可用函数和方法,而且还可以通过索引标签的方式获取数据,具有索引的自动对齐功能

DataFrame类似于Numpy中的二维数组,同样可以使用Numpy数组的函数和方法,还具有一些其它灵活的使用

  • pd.Series():
    • 通过一维数组创建序列
    • 通过字典的方式创建序列
    • 通过DataFrame中的某一行或者某一列创建序列
  • pd.DataFrame():
    • 通过二维数组创建
    • 通过字典方式创建
    • 通过数据框创建

查询数据,我们需要使用索引有针对的选取原数据中的子集,指定行,指定列等

无论数据框还是序列,最左侧始终有一个非原始数据对象,这个就是接下来要介绍的数据索引

通过索引获取目标数据,对数据进行一系列的操作

  • 通过index属性获取序列的索引值
  • 更改index
  • 通过索引获取数据
  • 自动化对齐

sklearn

  • Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)方法。
    • 常用的回归:线性、决策树、SVM、KNN;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees
    • 常用的分类:线性、决策树、5VM、KNN,朴索贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting.Bagging、ExtraTrees
    • 常用聚类:k均值(K-means)、层次聚类(Hierarchical clustering)、DBSCAN常用降维:LinearDiscriminantAnalysis、PCA
  • 常规使用模式
    • 导包
    • 加载数据
    • 数据预处理:降维,数据归一化,特征提取,特征转换
    • 选择算法训练数据:直接查看api找到你需要的方法,直接调用即可,其中你可能需要调调参等
    • 测试数据:使用模型自带的score方法,或者使用sklearn指标函数,或者使用自己的评价方法
    • 预测结果写入.csv中
  • 数据标准化
    • 存在的问题:如果某个特征的方差比其他特征大几个数量级,那么他就会在学习算法中占据主导位置,导致学习器对其他特征有所忽略。
    • 概念:标准化:先对数据进行去中心化,再除以特征的标准差,对数据进行缩放
    • 实现方式:数据标准化通过sklarn中preprocessing.scale()方法实现
  • 交叉验证
    • 思想:重复使用数据,把得到的样本数据进行切分,组合成为不同的训练集和验证集,用训练集来训练模型,用验证集评估模型预测的好坏
    • 简单的交叉验证:随机的将样本数据分为两部分(如70%训练,30%测试),然后用训练集来训练模型,在验证集上验证模型及参数;接着再把样本打乱,重新选择训练集和验证集,重新训练验证,最后选择损失函数评估最优的模型和参数
    • K折交叉验证:随机将样本数均分为K份,每次随机选择其中的k-1份作为训练集,剩下的1份做验证集。当这一轮完成后,重新随机选择k-1份来训练数据,若干轮后选择损失函数评估最优的模型和参数。
    • 留一交叉验证:留一交叉验证是k折交叉验证的一种特例,此时k=n(样本的个数),每次选择n-1个样本进行训练,留一个样本进行验证模型的好坏(这种方法适合样本量非常少的情况)
    • boostrapping自助采样:这种方法也是随机森林训练样本采用的方法。在n个样本中随机有放回抽样m个样本作为一颗树的一个训练集,这种采用会大约有1/3的样本不被采到,这些不被采到的样本就会被作为这棵树的验证集。
  • 过拟合
    • 过拟合的问题是因为模型过于复杂,对于训练数据能很好的拟合,却不能正确的处理测试数据,从一个角度说就是,学到了一些样本数据一些非通用信息,使得模型的泛化效果非常不好。
    • learning_curve():主要是用来判断(可视化)模型是否过拟合的
    • validation curve():主要是用来查看在参数不同的取值下模型的性能
  • 保存模型
    • 目的:节约时间,方便的将模型迁移
    • 从sklearn中导入自带保存模块
      from sklearn.externals import joblib
      
    • 保存模型
      joblib.dump(model,'sklearn_save/clf.pkl')
      
    • 重新加载模型
      model2=joblib.load('sklearn_save/clf.pkl')
      

参考

深度之眼-Python基础训练营

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352