是AI就躲个飞机-纯Python实现人工智能

很久以前微信流行过一个小游戏:打飞机,这个游戏简单又无聊。在2017年来临之际,我就实现一个超级弱智的人工智能(AI),这货可以躲避从屏幕上方飞来的飞机。本帖只使用纯Python实现,不依赖任何高级库。

本文的AI基于neuro-evolution,首先简单科普一下neuro-evolution。从neuro-evolution这个名字就可以看出它由两部分组成-neuro and evolution,它是使用进化算法(遗传算法是进化算法的一种)提升人工神经网络的机器学习技术,其实就是用进化算法改进并选出最优的神经网络。

neuro-evolution

继续阅读是AI就躲个飞机-纯Python实现人工智能

发文后自动分享到微博和Twitter-Python

我在每次发帖后都会把帖子手动分享到微博、Twitter等社交网络,但是很多时候我会忘,于是我就想自动化这个过程。

本站使用的是WordPress博客系统,不知道有没有现成的插件。我使用Python做,原因是我有切换到Django的打算,使用Python做可以方便以后集成。还有就是,我对PHP不熟。 继续阅读发文后自动分享到微博和Twitter-Python

PyMongo模块的使用-MongoDB的Python接口

MongoDB是近年来非常流行的开源NoSQL数据库,它使用JSON存储数据。

PyMongo是Mongo官方开发Python模块,用来操作MongoDB数据库。

我做的一个爬虫用到了MongoDB。

继续阅读PyMongo模块的使用-MongoDB的Python接口

Ubuntu 16.04 安装 PyCharm-Python IDE

我最开始接触的编程语言是C/C++,之后由于工作需要又零零碎碎的接触过其它编程语言,直到有一天遇到Python。只恨没早一点接触这货,Python给我的感觉就是快,我说的快不是指代码执行速度,而是开发效率。有时C/C++百行代码,Python只需几行

PyCharm一个是Python集成开发环境,它既提供收费的专业版,也提供免费的社区版本。PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、自动完成、单元测试。 继续阅读Ubuntu 16.04 安装 PyCharm-Python IDE

Python: 为图片添加水印

添加水印的主要目的是为了版权保护,使自己的图像不被抄袭或者恶意转载。网上有很多制作水印的工具,本帖介绍怎么使用Python-Pillow库给图片添加水印。

添加文本水印

在图片右下角添加文字: 继续阅读Python: 为图片添加水印

使用Python实现神经网络

神经网络/人工神经网络的洋文是Neural Network,这个计算模型在上世纪40年代就出现了,但是直到2011、2012年由于大数据和深度学习的兴起,神经网络才得到广泛应用。

参看wiki神经网络:https://en.wikipedia.org/wiki/Artificial_neural_network

为了更好的理解Neural Network,本帖使用Python实现一个最简单的Feed-forward神经网络,然后使用MNIST数据集进行测试。 继续阅读使用Python实现神经网络

使用Python实现Mean Shift算法

前文介绍的K-Means算法需要指定K值(分组数),本文实现的MeanShift聚类算法不需要预先知道聚类的分组数,对聚类的形状也没有限制。

为了更好的理解这个算法,本帖使用Python实现Mean Shift算法。

MeanShift算法详细介绍:https://en.wikipedia.org/wiki/Mean_shift

scikit-learn中的MeanShift

继续阅读使用Python实现Mean Shift算法

使用Python实现K-Means算法

K-Means是一种聚类(Clustering)算法,使用它可以为数据分类。K代表你要把数据分为几个组,前文实现的K-Nearest Neighbor算法也有一个K,实际上,它们有一个相似之处:K-Means也使用欧拉距离公式。

继续阅读使用Python实现K-Means算法

使用Python实现Support Vector Machine算法

Support Vector Machine或简称SVM可翻译为支持向量机,是机器学习中常用的分类算法,它比上文介绍的KNN算法要复杂的多。为了理解这个算法的基本原理,本帖使用Python实现SVM算法。

如果你不知道SVM为何物,参看: 继续阅读使用Python实现Support Vector Machine算法