20_少儿Python编程_第二十讲 :编程技巧
少儿 Python 编程 _
第二十讲:编程技巧
在学习编程的过程中,起初新手开发者对程序没有什么概念,先讲解习惯和注意事项,不但没什么效果,注意事项太多,反而提高了编程的难度;往往在自己遇到问题后,经过思考,印象更加深刻。之前在每一讲课后练习中,也加入了一些技巧说明,但比较分散。本讲将总结编写程序过程中遇到的各种问题和编程习惯。
20.1 编程习惯
写程序最重要的是实现功能,在实现功能的基础上,好的编程习惯,让代码更清晰,更容易理解,无论是过一段时间自己再看,还是给别人使用都能节约大量时间;同时,好的编程习惯让代码在不同运行环境和操作系统中也能稳定地运行。
20.1.1 缩进
缩进指代码与边界之间的距离,Python
使用缩进组织代码块,一般用冒号和缩进区分代码之间的层次。代码块缩进常出现在:函数体、循环体、以及判断语句之后。
对 Python
编程来说,缩进是必不可少的;其它编程语言,也大都包括缩进,但有的不是必须缩进,比如
C
语言用大括号括住循环体内容,但一般程序员也会使用空格缩进,这样更容易看到代码的层次:直观地看到循环从哪里开始,到哪里结束,缩进也是一种良好的编程习惯。
1 ...
19_少儿Python编程_第十九讲: 数据分析网站
少儿 Python 编程 _
第十九讲:数据分析网站
本讲是一个综合实例,结合了数据分析和构建网站技术,提供用户通过浏览器上传文件,在服务端实现分析上传的数据,并生成动态统计表格,回传给用户端。其中用到表单上传文件、读取
Excel 数据表文件、统计图表、生成动态网页等技术。
19.1 上传文件
让用户上传文件,处理后再把结果返回给用户,是一个很常用的操作,比如用户上传一张相片,服务器端经过美颜或者换背景处理后显示在网页上;又如用户上传一个
Excel
数据表文件,数据统计分析后把统计结果显示给用户。开发者提供前端和后端服务。用户使用网络中任意一台计算机或者手机,只需要用浏览器即可实现需要的功能,无需安装任何软件。
上传文件功能也可通过表单实现。本例展示了上传文件的方法。为简化代码逻辑,将
HTML 模板也写入了 Python 代码。
1234567891011121314151617181920212223242526272829303101 from flask import Flask,request,redirect,url_for02 import os03 04 UPLO ...
ubuntu重启后找不到gpudriver
ubuntu 重启后找不到 gpu
driver
使用 nvidia-smi 提示(此时 X-window
也无法正常启动,只能显示输密码界面):
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver.
Make sure that the latest NVIDIA driver is installed and running.
用以下命令自动重装驱动:
$ sudo ubuntu-drivers autoinstall
此时可正常使用 nvidia-smi,启动 gpu docker 时又报错。
用以下命令查看驱动情况:
$ nvidia-container-cli -k -d /dev/tty info
也报错。分析发现系统自动安装的 driver 是 430 版本(之前好像安装过 440
或 450,重启后不能正常使用)。
因此,用以下命令安装 430 配套的 libcuda1:
$ sudo apt-get install libcuda1-430
安装后 docker 也可 ...
Docker问题解决
nvidia-docker 无法正常启动
上周更新了 nv 的驱动到 450,然后发现 nvidia-docker
无法启动了,报错:
1docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver error: failed to process request\\\\n\\\"\"": unknown.
使用命令:
12345$ nvid ...
自动机器学习框架之四_PyCaret
自动机器学习框架之四
_PyCaret
机器学习涉及数据分析、清洗、建模、评价、对比模型……无论是初学者,还是有经验的开发者在面对新的项目时,都想要简化这些工作,最好能用简单的代码、较短时间,就能得出初步验证结果,之后再进一步优化。
希望能用一个简单的数据文件,几行通用的 Python
语句,就能实现分析、建模和部署。PyCaret
就是这样的工具:虽然没有太多创新算法,但极大地简化了工作流程。这也让机器学习的门槛越来越低。
PyCaret 是 Python 开发的机器学习库,它封装了
Sklearn,XGBoost,LightGBM,Spacy,Shap,PyOD,Gensim,WordCloud
等工具,几乎包括机器学习所有的使用场景和方法(不含深度学习):异常检测
Anomaly Detection,关联规则 Association Rules,分类 Classification,回归
Regression,聚类 Clustering,自然语言处理 NLP
等。其中支持最丰富的还是分类和回归。
PyCaret
屏蔽了具体使用细节,比如各种库在建模,绘图,特征排序的不同调用方法。向 ...
用Lucene构造垂直搜索引擎
用 Lucene 构造垂直搜索引擎
Lucene 是用于全文检索的开源库,Apache 软件基金会提供支持。它由 Java
语言开发,也提供 Python 接口调用。
本文介绍使用开源项目 Lupyne
构建垂直搜索引擎,搜索本地网页中的内容。它使用 Python
语言编写,搜索功能用 Lucene 引擎实现,使用 html2text
从本地网页中提取数据,实现对网页中文本的搜索,前端调用 CherryPy
框架(flask 的 web server 常用作开发测试。而 cherrypy 的 web server
常用于生产环境),提供网页搜索功能。
运行文中实例需要匹配 Java,Python,Lucene
等各个软件版本,环境配置比较复杂,因而基于 Lucene 提供的 docker image
环境构建。
Lucene 元素
使用 Lucene 之前,先来了解一些相关概念。
Directory:指定如何保存构建的索引,测试时常保存在内存中,实际应用中,一般将其保存在文件系统中,本例将索引保存在/tmp/a
目录下。
Analyzer:分析器,用于处理文本,如分词,去停用词等。
I ...
论文阅读_解释黑盒模型方法综述
论文阅读 _
解释黑盒模型方法综述
论文:《A Survey of Methods for Explaining Black Box Models》
论文地址:https://arxiv.org/abs/1802.01933v3
(本文为论文核心内容提炼,并非逐段翻译)
《A Survey of Methods for Explaining Black Box Models》是 2018
年发表在 ACM Computing Surveys 上的一篇综述性论文,正文 37
页,介绍了七十多种模型解释相关论文,参数文献 144
篇。它列出了每种方法的相关论文,作者,发表时间,解释模型,被解释模型,解释何种类型数据,是否提供代码,数据等信息,如下图所示:
论文的前五章介绍了为什么需要使用可解释模型,第六到九章分类别介绍了各种解释方法及相关论文,并对每一种方法进行了简要介绍。
如何评价模型
无论是写论文,还是和客户沟通,描述下列几点都是必不可少的。
• 模型评价指标
一般数据分析时都会使用:敏感性、特异性、F1 score、AUC 曲线等方法。
• 被多少数据支持
训练数据和测试数据的数据 ...
查找论文
#论文阅读
SCI 是什么
美国《科学引文索引》(Science Citation Index, 简称
SCI)是由美国科学信息研究所 1961 年创办出版的引文数据库。相对于 EI
工程索引,SCI 要求论文更规范,系统,完整,创新性更高。
论文分区
SCI 有两个分区规则:JCR 分区和中科院分区。JCR
分区根据某一学科的所有期刊都按照上一年的影响因子降序排列,然后平均 4
等分 (各 25%),分别是
Q1,Q2,Q3,Q4。中科院分区按各类期刊三年平均影响因子排序,前 5%
为一区(国际顶级期刊),前 20% 为二区,前 50% 为三区,剩下的为四区。
影响因子
SCI 期刊的影响因子 IF(Impact
Factor)值是衡量期刊水平的标准,它的计算方法为:前两年文章引用数/前两年文章收录数(一般
IF>1 表示引用率较高)。最低分值是 0~1 分,高的到几十分。
用以下方法查看影响因子:
打开 http://www.letpub.com.cn/
点击 SCI IF(影响因子)查询
输入期刊名搜索(也可以按分类查找)如:输入 JAMA,列出了 JAMA
的多个子刊,从列 ...
分类模型的可解释性
分类模型的可解释性
#机器学习
论文题目:《Why Should I Trust You? Explaining the Predictions of Any
Classifier》
论文地址:[https://chu-data-lab.github.io/CS8803Fall2018/CS8803-Fall2018-DML-
Papers/lime.pdf](https://links.jianshu.com/go?to=https%3A%2F%2Fchu-data-
lab.github.io%2FCS8803Fall2018%2FCS8803-Fall2018-DML-Papers%2Flime.pdf)
模型可解释性论文列表:[
https://github.com/oneTaken/awesome_deep_learning_interpretability
](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2FoneTaken%2Fawesome_deep_learning_interpretability ...
Notebook左侧开启导航
Notebook 左侧开启导航
Python
有时候使用 Notebook 编写较长代码,或者有很多
Cell,定位某一段代码时需要不断拖动,非常麻烦,使用 Notebook
插件提供的导航功能可以很好地解决这一问题。
首先,安装插件:
方法一
123$ pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions$ jupyter contrib nbextension install --user$ jupyter nbextensions_configurator enable –user
方法二
123$ pip install jupyter_contrib_nbextensions$ jupyter contrib nbextension install --user$ pip install jupyter_nbextensions_configurator
然后在 Notebook 目录界面打开插件设置标签页
Nbextensions,选中其中的 Table of contents ...