- 博客(20)
- 收藏
- 关注
原创 word2vec利用词向量进行中文新闻标题相似度分析
需求是在48万条中文新闻标题里,给测试集中50条标题的每一条找出最相近的20条新闻。拿到这个需求第一反应当然是计算词向量,生成每句话的语义向量然后计算相似度啦,也想过TFIDF来提取每条新闻的关键字,但是原始数据集是没有分类标签的,所以这一步比较难做。在下一步打算计算每条新闻的语义向量以后对新闻进行聚类,然后再应用TFDF提取关键字,直觉上这样可以提升准确度同时降低运算量。完整代码可以从这个git
2018-05-10 13:57:59 7795 7
原创 python+POP3 批量下载邮件附件
最近新开学,接到了给老板的本科课程当助教的工作,百十来号人一学期下来得有四五次作业发进邮箱里,需要我来统计打分,想想挨个点进去下载附件的过程就头大,于是萌生了写个脚本来统计作业的想法。其实python里收发邮件都有很方便的包,合理使用就好,可以解决绝大多数的邮件收发任务。但是这个脚本写下来还是花了不少时间,其中最大的一部分时间是花在了python的编码问题上,python2和python3的编码预...
2018-03-12 19:16:27 10714 12
原创 GLCM+SVM 检测布料瑕疵
GLCM(Gray-level co-occurrence matrix)也就是灰度共生矩阵,是在处理纹理图像时候常用的手段。glcm顾名思义其实就是一个矩阵,矩阵内放的是指定距离、方向的两个像素点的灰度关系,它可以将亦庄图片中的像素点对的灰度信息表示成一个矩阵,通过对矩阵特征的提取从而达到提取图片中信息的目的。详细的原理也不多说了,下面主要说几个经常用到的特征:1.ASM能量也就是矩阵中每个矩阵...
2018-03-05 15:17:59 6271 7
原创 win10+python3+opencv3 读取视频中的指定帧并存为图片
opencv3中取消了opencv2中的许多方法,目前能看到的例子大多只是播放视频,同时opencv的官方文档多数是以c++为背景的,看起来十分痛苦。所以总结一下opencv3中videocapture的几个常用方法和参数,同时给出一个快速读取视频中指定帧并存为图片的例子。读取视频还是首先应该建立一个videocapture对象:cap = cv2.VideoCapture('file
2018-01-13 09:59:47 7847 2
原创 简单BP神经网络的python实现
尽管神经网络已经有了很完备并且好用的框架,而且BP神经网络又是其中比较简单低效的一种,但是出于学习的目的来实现一下这个神经网络还是有意义的吧我想。下面程序用到了iris数据集,为了方便画图先用PCA对数据进行了降维。同时对分类结果进行了标签化,针对神经网络的特点,用三个神经元作为输出来表示三个不同的分类,代码如下:import mathimport randomfrom sklearn.d
2017-11-30 13:25:37 15059 11
原创 利用anaconda同时使用python2和python3的方法
很多的情况下使用python3的资源会比2多不少,但是对于之前用惯了python2,并且有不少代码已经写在里边的同学,一时间要换成3也是有点困难,所以就需要同时使用python2和3了。我们需要的是基于某个版本的anaconda,2或者3都可以,下面以2为例。首先需要我们设置一下anaconda,使用清华的镜像,原地址会非常慢。cmd中输入conda config --add chann...
2017-11-09 21:24:02 20139 1
原创 应用偏最小二乘回归(PLSR)对NIR光谱与样本中RON含量进行定量分析
本文对偏最小二乘法(PLS——Partial Least Squares Regression,也缩写为PLSR)的算法原理进行了简单的推导,并结合汽油近红外光谱举例了算法具体应用的实例。原本写了word版本的报告,实在是懒得再在这边写一遍,所以偷懒直接放图片过来了,最后贴上了原程序。import csvfrom sklearn imp
2017-11-07 14:33:11 7727 8
翻译 openCV中的机器学习算法
本文还是对网上openCV教程中例程的注释和修改。openCV里面封装了不少利用了机器学习算法的函数,下面代码完成了对他们的使用。#K近邻分类算法import cv2import numpy as npimport matplotlib.pyplot as plttrainData = np.random.randint(0,100,(25,2)).astype(np.float32
2017-10-26 16:54:25 2157
原创 利用pandas实现一个小需求
接到了一个小需求,手上有某应用8月和9月的用户信息,希望能算出8月新注册用户的留存率。即计算在8月注册的用户有多少比例在一个月内又一次使用了该应用。并返回每个城市每天的用户留存率。因为对pandas中dataframe的操作还不熟悉,dataframe的索引又比较鸡龟,所以程序里用了很多不必要的遍历和循环,代替了本来用dataframe可以快速完成的操作,因此程序效率不高,但是基本完成了需求,
2017-10-26 16:42:52 417
翻译 openCV库cv2的使用
网上可以找到python的openCV库的英文教程,本文对其中的部分实例进行了实现和注释,同时针对cv2这个库更改了原来程序中一些会报错的地方。#原程序是像草稿一样写在 jupyter notebook里的,方便分cell运行测试,现在就直接贴进来不做修改了。import cv2import numpy as np# 读取一张照片img = cv2.imread('8.jpg')
2017-10-25 22:29:18 17610 1
转载 基于贝叶斯算法的拼写检查器
涉及到了对整段文字的机器学习,通过学习根据词频计算每个单词的先验概率,在输入一个非正确的单词后选择编辑距离最近先验概率最高的词作为结果。import re,collectionsdef words(text):#取出学习样本中的词 return re.findall('[a-z]+',text.lower())def train(features): model = co
2017-10-25 22:22:00 656
原创 梯度下降回归
这里比较了使用梯度下降和不适用梯度下降对于模型预测效果的影响。不使用梯度下降时,在可能的区间内对参数进行遍历,寻找最合适的参数,效果不够理想。使用梯度下降的方法以后速度和预测效果都得到了提升。本来想在最后加上对预测结果的可视化显示,可惜并没有成功。数据可视化方面还是需要再多学习一下。import matplotlib.pyplot as pltimport numpy as np
2017-10-25 22:15:54 632
原创 线性回归算法实现
先是简单的线性回归,原理公式推导就不多写了,直接上代码喽。定义了一个线性回归的类,里面包含了用于训练回归算法的函数fit,和用于预测的函数predict。import matplotlib.pyplot as pltimport numpy as npclass LinearRegression():#一维线性回归 def __init__(self):
2017-10-25 22:09:19 578
原创 PCA主成分分析
from PIL import Image from numpy import *def centring(X):#中心化算法 mean_X = X.mean(axis = 0)#按列求每个特征的均值 X = X - mean_X return Xdef pca(X):#分析算法 data_num,dim = X.shape() X = centr
2017-10-17 16:15:50 406
原创 多分类Fisher线性判别算法
Fisher线性判别法也即FLD实在PCA降维的基础上再进一步考虑样本间的信息。算法目标是找到一个投影轴,使各分类的类内样本在投影轴上的投影间距最小,同时样本间的投影间距最大。原理不难,公式推导遍地都是,尽管看不太懂吧..但是掌握核心几个公式以后就不妨碍我们用程序来实现它。但是网上的例子多数是基于二分类的,那么对于多类别的样本如何使用FLD判别呢,这个问题没有太多的论述。所以想出了如下的办法去
2017-10-17 16:00:04 11937 1
原创 FCM聚类算法
之前提到了K均值算法,多数讨论认为K均值与硬C均值(HCM)算法本质相同。在HCM的基础上加入了对聚类簇的模糊划分,引入了隶属度来提升算法性能。import copy,math,random,time,sysimport matplotlib.pyplot as pltimport matplotlib.animation as animationimport decimalMAX
2017-10-11 19:39:39 1856
原创 手动登录版微博爬虫
之前的贴吧爬虫并不十分费力的原因是贴吧不需要登录,或者说在只需要爬取作者以及标题时,以游客身份进入贴吧就足够了。但是当我们想做一个用于爬取微博搜索结果的爬虫时,问题出现了。根据微博的机制,游客身份的权限只能查看搜索结果的前几条,不能查看完整的搜索结果,这里就必须登录了。其实登录貌似一直是爬虫的大问题,各种网站也针对爬虫做了很多防爬的措施,所以要实现完全自动登录十分的复杂。所以立足于‘解决问题就
2017-10-10 16:27:02 2037
原创 关于Anaconda中修改Jupyter Notebook默认启动目录的问题
Anaconda中Jupyter Notebook默认启动的目录通常情况下在windows的用户默认目录中,试用过程中多有不便。网络中修改其默认启动目录的方法十分丰富,但是多数十分繁琐,以下提供一个快捷更改其默认启动目录的方法。首先找到Anaconda的安装目录,在目录中查找“jupyter-notebook.exe”,可以找到jupyter-notebook.exe这个应用程序。
2017-09-26 15:51:59 1189 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人