中企动力 > 头条 > python入门项目

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

python入门项目

使用Python,创建你的第一个实用型入门机器学习项目(下) 互联网视频课程

img

弹簧

关注

注:本文分上、下两部分,本章是教程的下半部分。

你可以通过下面的链接找到上半部分的教程内容:

“使用Python,创建你的第一个实用型入门机器学习项目(上)”

https://toutiao/i6529328389931663875/

4. 可视化数据集

我们现在对数据有一个基本的想法,我们需要用一些可视化来扩展它。

我们要看看两种类型的情节:

使用单变量绘图以更好地理解各个属性

使用多变量绘图以更好地理解各个属性之间的关系

4.1 单变量情节

我们从一些单变量图开始,即每个变量的图。

鉴于输入变量是数字,我们可以创建每个变量的箱-线图。

# 箱-线图

dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)

plt.show()

这使我们对输入属性的分布有了更清晰的认识:

箱-线图

我们还可以创建每个输入变量的直方图(即矩阵图),以了解分布情况。

# 直方图

dataset.hist()

plt.show()

看起来似乎两个输入变量有一个高斯分布,这点很有用,因为我们可以使用算法来验证这种假设。

直方图

4.2 多变量图

现在我们可以看看变量之间的相互作用。

首先,我们来看看所有对属性的散点图, 这有助于发现输入变量之间的结构关系。

# 散点图矩阵

scatter_matrix(dataset)

plt.show()

请注意一些属性对的对角线分组,这表明高度相关性和可预测的关系。

散点图矩阵

5 评估算法

现在是时候创建一些数据模型,并估计它们对未查看数据的准确性。

以下是我们将在此步骤中涵盖的内容:

分离出验证数据集。

设置测试工具以使用10倍交叉验证。

建立5种不同的模型来预测花朵测量的物种

选择最好的模型。

5.1 创建一个验证数据集

我们将使用统计方法来估计我们在看不见的数据上创建的模型的准确性, 我们还希望通过对实际看不见的数据进行评估,更准确地估计未见数据的最佳模型的准确性,我们需要知道我们创建的模型是好的。

也就是说,我们将阻止一些算法无法看到的数据,我们将使用这些数据获得第二个独立的想法,即最佳模型实际可能有多准确。我们将加载的数据集分成两部分,其中80%用于训练我们的模型,20%用作验证数据集。

# 拆分验证数据集

array=dataset.values

X=array[:,0:4]

Y=array[:,4]

validation_size=0.20

seed=7

X_train,X_validation,Y_train,Y_validation=model_selection.train_test_split(X,Y,test_size=validation_size,random_state=seed)

您现在已经在X_train和Y_train中准备了用于准备模型的训练数据以及稍后可以使用的X_validation和Y_validation集。

5.2 测试

我们将使用10倍交叉验证来估计准确性。

这将把我们的数据集分成10个部分,在9上进行训练并在1上进行测试,并对列车测试分组的所有组合进行重复。

#测试选项和评估指标

seed=7

scoring='accuracy'

我们正在使用“准确度”度量来评估模型。 这是正确预测的实例数量除以数据集中的实例总数乘以100得到的百分比(例如95%准确)的比率。 当我们运行构建并接下来评估每个模型时,我们将使用评分变量。

5.3 构建模型

我们不知道哪种算法在这个问题上很好,或者使用哪种配置。 我们从这些图中得到一些想法,即某些类在某些维度上可以部分线性分离,所以我们期望通常会有很好的结果。

我们来评估6种不同的算法:

Logistic回归(LR)

线性判别分析(LDA)

K-最近邻居(KNN)。

分类和回归树(CART)。

高斯朴素贝叶斯(NB)。

支持向量机(SVM)。

这是简单线性(LR和LDA),非线性(KNN,CART,NB和SVM)算法的良好混合。 我们在每次运行之前重置随机数种子,以确保使用完全相同的数据拆分执行每个算法的评估。 它确保结果可以直接比较。

让我们来构建和评估我们的五个模型:

# Spot Check Algorithms

models = []

models.append(('LR', LogisticRegression()))

models.append(('LDA', LinearDiscriminantAnalysis()))

models.append(('KNN', KNeighborsClassifier()))

models.append(('CART', DecisionTreeClassifier()))

models.append(('NB', GaussianNB()))

models.append(('SVM', SVC()))

# evaluate each model in turn

results = []

names = []

for name, model in models:

kfold = model_selection.KFold(n_splits=10, random_state=seed)

cv_results = model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)

results.append(cv_results)

names.append(name)

msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())

print(msg)

5.4 选择最佳模型

我们现在有6个模型和准确度估计值。 我们需要将模型相互比较并选择最准确的模型。

运行上面的例子,我们得到以下原始结果:

LR: 0.966667 (0.040825)

LDA: 0.975000 (0.038188)

KNN: 0.983333 (0.033333)

CART: 0.975000 (0.038188)

NB: 0.975000 (0.053359)

SVM: 0.991667 (0.025000)

我们可以看到,它看起来像KNN具有最大的估计准确性。

我们还可以创建模型评估结果的图表,并比较每个模型的差异和平均准确度。 每种算法都有一组准确性度量,因为每种算法都进行了10次评估(10次交叉验证)。

# 算法比较

fig = plt.figure()

fig.suptitle('Algorithm Comparison')

ax = fig.add_subplot(111)

plt.boxplot(results)

ax.set_xticklabels(names)

plt.show()

您可以看到盒子和线须块在范围的顶部被压扁,许多样品达到100%的准确度。

算法比较

6 预测

KNN算法是我们测试的最精确的模型。 现在我们想要了解我们验证集上模型的准确性。

这将使我们对最佳模型的准确性进行独立的最终检查。 为了防止在训练过程中发生故障(如过度训练集或数据泄漏),保留验证集非常有用。 两者都会导致过于乐观的结果。

我们可以直接在验证集上运行KNN模型,并将结果汇总为最终准确度分数,混淆矩阵和分类报告。

# 在验证数据集上做预测

knn = KNeighborsClassifier()

knn.fit(X_train, Y_train)

predictions = knn.predict(X_validation)

print(accuracy_score(Y_validation, predictions))

print(confusion_matrix(Y_validation, predictions))

print(classification_report(Y_validation, predictions))

我们可以看到准确度为0.9或90%。 混淆矩阵提供了三个错误的指示。 最后,分类报告按精度,召回率,f1分数和支持显示出色的结果(授予验证数据集很小)提供每个类的分类。

6 你可以使用Python进行机器学习

通过上面的教程,这将需要109到20分钟,最多!你就可以对机器学习有个比较全面的了解!

你不需要了解一切。 (至少不是现在)你的目标是贯穿教程的端到端并得到结果。你不需要了解第一遍的所有内容。当你走的时候列出你的问题。大量使用Python中的帮助(“FunctionName”)帮助语法来了解您正在使用的所有功能。

你不需要知道算法是如何工作的。了解限制和如何配置机器学习算法是很重要的。但是关于算法的学习可能会晚一些。您需要在很长一段时间内慢慢建立这种算法知识。今天,首先要让平台变得舒适。

你不需要成为一名Python程序员。如果你是新手,Python语言的语法可以是直观的。就像其他语言一样,关注函数调用(例如function())和赋值(例如a =“b”)。这会让你获得最大的成就。你是一名开发人员,你知道如何快速掌握一门语言的基础知识。刚开始,稍后再深入细节。

你不需要成为机器学习专家。您可以稍后了解各种算法的优点和局限性,并且您可以稍后阅读大量文章,以了解机器学习项目的步骤以及使用交叉验证评估准确性的重要性。

机器学习项目中的其他步骤如何?我们没有涵盖机器学习项目中的所有步骤,因为这是您的第一个项目,我们需要关注关键步骤。即,加载数据,查看数据,评估一些算法并做出一些预测。

结束语

在这篇文章中,你逐步发现了如何用Python完成你的第一个机器学习项目。

您发现从加载数据到做出预测完成一个小型的端到端项目是熟悉新平台的最佳途径。

下一步

你是否练习了本教程所有步骤?

列出你遇到的问题,发布在下面的评论中,我们可以一起探讨。

关注我的头条,分享知识!

Python基础教程项目(一)即时标记 企业视频课程

img

莫名剑

关注

这是Python基础教程第20章的项目一:即时标记

目的就是要将一段文本根据文本的格式转换成HTML

原文本

原文本

添加标记后

添加标记

用浏览器打开

这个项目分为四个模块:

分析器:负责读取文本,管理其他的类

规则:检测文本块的类型(标题,列表等),使用相对应的规则

过滤器:处理一些内嵌元素,比如

处理程序:为文本块添加标记

处理程序

处理程序是添加标记的程序

handlers.py

首先定义了一个超类,其中的start函数和end函数都是为了调用callback函数,callback函数负责在给定一个前缀(例如:start_)和一个名字(例如:paragraph)后查找正确的方法(start_parapraph)。sub方法则会返回一个函数用在re.sub中的第二个函数参数来使用,起到替换文本的作用

handlers.py

处理程序的超类中的callback和sub方法继承到这个类中,然后这个类就可以调用这些方法,这些方法很简单,就是输出开始标签和结束标签

过滤器

过滤器

这几个就是过滤器,很简单,是为了检测文本块中是否有em、url和mail格式的文本

规则

这个模块,抛开祖父类不说,其他类应该有的两个方法是condition和action,前者是用来判断读进来的字符串是不是符合自家规则,后者是用来执行操作的,所谓的执行操作就是指调用“处理程序模块”,输出前标签、内容、后标签。

rules.py

rules.py

分析器

这个模块的作用其实就是协调读入的文本和其他模块的关系。在往重点说就是,提供了两个存放“规则”和“过滤器”的列表,这么做的好处就是使得整个程序的灵活性得到了极大的提高,使得规则和过滤器变成的热插拔的方式,当然这个也归功于前面在写规则和过滤器时每一种类型的规则(过滤器)都单独的写成了一个类,而不是用if..else来区分。

makeup.py

makeup.py

补充:

util.py

这个文件就是读取文件中的内容,并分成文本块

欢迎大家关注头条号:热衷python和前端

如果有需要源码的同学就留言或者私聊我吧

2018年最火的5大Python开源项目,总有适合你的! 营销视频课程

img

梦之轩

关注

前几天看到一条新闻,说是高中生课程里面开设python课程了,这小孩子都来抢占市场了,这就是打了很多人的脸,特别是已经毕业很多年或者正在学校的人,小孩子都作为标准的教材来学习了,作为过来人还有什么理由说学不好。让自己做得多说的少最合适。

说到python现在处于风口期,相对来说入门也比较容易。在人工智能以及大数据分析上都具备很强的特性。

Python语言易学易学,高效开发。Python语言开发的开源项目非常活跃。下面是五个最活跃的Python开源项目。

1)排名第一,当然是关于机器学习谷歌开源项目tensorflow,TensorFlow是一个对数值计算的数据流图,对开源项目的统计,这个项目被宣布与一百万星和叉,被广泛应用于机器学习和深度神经网络研究。

2)第二个地方是python的新烧瓶。烧瓶是一个小型的Python Web开发框架。它是基于WSGI工具箱和jinja2模板引擎,它可以配置和开发Python网站最灵活快速的。

3。)第三的地方是在Python Web方向的经典Django,和Django Web框架,采用m-v-t设计模式。在Django,由于控制器接受用户输入部分由框架本身的处理,所以Django编程更侧重于模型(模型)、模板(模板)和视图(视图)。小编推荐一个学Python的学习裙【五八八,零九零,九四二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有很多干货和技术分享使用Django,我们可以快速创建高质量、易维护、数据库驱动的Web服务程序,特别是与学生建立数据库的操作不是很熟悉,宝。

4)是Python的成熟,功能齐全的排在功能测试框架pytest pytest测试框架第四,可以帮助你更好的编写自动化测试程序,它可以适应全功能测试,集成测试复杂,从简单的单元测试,以及众多的支持插件开发。

5)在数据收集工具Scrapy排名第五,Scrapy是一个优秀的数据网络爬虫框架,用户只需要定制几个模块的开发可以实现完美的网络爬虫容易,使用它来抓取网页内容的数据和各种图像文件等非常方便;Scrapy还提供各种履带式基础的类型,如basespider和站点;Scrapy被广泛应用于数据挖掘、网络监控和自动测试等。

以上排名是基于代码提交和叉活动的排名,只反映了开源代码的流行,企业市场应用不热,注意差异,你必须根据自己的需要选择适合你的项目的python开源框架和工具。

不管你是怀着什么目的,求职加薪,或者是兴趣。首先你得准备吃苦的思想准备。学编程语言是枯燥的,得持之以恒。如果学python都是从入门到放弃,那么学其它东西会更难。

还需要有些自学能力,出现问题,自己尝试解决。多加练习,在练习和不断挫折中理解和掌握,熟能生巧。

不要急躁,真正能为你所用的技能,不是一朝一夕速成的。真正能被你吸收的养分,不是别人嚼烂了给你。你自己体会到的知识,才会被你吸收,在大脑里停留许久。

10大Python开源项目推荐 企业视频课程

img

夏念云

关注

▌Rank 1:Requests-HTML v0.9(7385 stars on Github,来自Kenneth Reitz)

该库旨在尽可能简单直观地解析 HTML,仅支持 Python 3.6。

项目地址:https://github/kennethreitz/requests-html

▌Rank 2:PyTest v3.5(2453 stars on Github,来自Pytest-dev)

该项目是一个可扩展的 Python 框架,可以轻松编写小型测试,支持更复杂的功能测试。

项目地址:https://github/pytest-dev/pytest

▌Rank 3:Lector(327 stars on Github,来自BasioMeusPuga)

基于 Qt 的电子书阅读器

项目地址:https://github/BasioMeusPuga/Lector

▌Rank 4:Asciinema v2.0(5491 stars on Github,来自Asciinema)

Python 编写的终端会话录制器。

项目地址:https://github/asciinema/asciinema

▌Rank 5:Snips-nlu v0.13(1416 stars on Github,来自Snips)

Snips-nlu 是一个 Python 库,可以解析用自然语言编写的句子并提取结构化信息。

项目地址:https://github/snipsco/snips-nlu

▌Rank 6:Black(1665 stars on Github,来自ukasz Langa)

Python 代码格式化工具库。

项目地址:https://github/ambv/black

▌Rank 7:Instagram-terminal-news-feed(690 stars on Github,来自Bill Cheng)

Instagram Terminal Feed

项目地址:https://github/billcccheng/instagram-terminal-news-feed

▌Rank 8:Makesite(481 stars on Github,来自Sunaina Pai)

适合 Python 工程师的简单、轻量级静态网站/博客生成器。

项目地址:https://github/sunainapai/makesite

▌Rank 9:Twitter-scraper(832 stars on Github,来自Kenneth Reitz)

Python 写的 Twitter 爬虫工具,无 API 流速限制,非常高效,可轻松获取任何用户的推文。

项目地址:https://github/kennethreitz/twitter-scraper

▌Rank 10:Fast-Pandas(667 stars on Github,来自M. Mansour)

Pandas 是为数据科学家和开发人员提供的最灵活、最强大的工具之一。开发者可通过几种方式执行特定的任务。Fast-Pandas 旨在针对这些情况下的不同可用方法进行基准测试。此外,在 numpy 和 pandas 中都有专门的功能部分。

项目地址:https://github/mm-mansour/Fast-Pandas

原文地址:https://medium.mybridge.co/python-top-10-open-source-of-the-month-v-apr-2018-9e91343756a

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP