python聚类算法实战详细笔记 (python3.6+(win10、Linux))
一、基本概念:
1、计算TF-DIF
TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,
则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,TF词频(Term Frequency),
IDF逆向文件频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。
IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。
2、K-means聚类计算
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,
它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。
K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。
算法采用误差平方和准则函数作为聚类准则函数。
二、python3.5 3.6环境配置
1、安装了VS2015;
2、在Python3.5安装路径中有一个Scripts文件夹,里面有pip.exe或者类似的可执行文件,安装一下;
3、下载相对应的whl安装包,下载地址http://www.lfd.uci.edu/~gohlke/pythonlibs/;
下载:1)numpy-1.12.1+mkl-cp36-cp36m-win32.whl
2)scipy-0.19.0-cp36-cp36m-win32.whl
3)scikit_learn-0.18.1-cp36-cp36m-win32.whl
4、安装, 下载好以后,进入whl文件所在文件夹,进入cmd,输入命令:
1)pip install numpy-1.12.1+mkl-cp36-cp36m-win32.whl 回车;显示successful,不要关闭cmd;
2)pip install scipy-0.19.0-cp36-cp36m-win32.whl 回车;显示successful,不要关闭cmd;
3)pip install scikit_learn-0.18.1-cp36-cp36m-win32.whl 回车;显示successful,不要关闭cmd;
5、验证一下,输入命令: 输入import numpy 回车 无异常,输入import scipy 回车 无异常,输入import sklearn 回车 无异常
环境配置成功
三、文本聚类算法步骤
本次目标是对海量淘宝商品标题进行分类
1、准备数据(5000条淘宝商品标题)
a、采集
b、手工准备
范本: https://pan.baidu.com/s/1eR4V77W (标题原文5000行【文本文件】)
2、初步加工
a、中文分词
b、手工处理
范本: https://pan.baidu.com/s/1mi4Z9wO (分词后的标题5000行【文本文件】)
3、计算TF-IDF代码如下:
代码如下:
============================ tfidf.py begin====================================================
# coding=utf-8
import time
import re
import o
一、基本概念:
1、计算TF-DIF
TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,
则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,TF词频(Term Frequency),
IDF逆向文件频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。
IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。
2、K-means聚类计算
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,
它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。
K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。
算法采用误差平方和准则函数作为聚类准则函数。
二、python3.5 3.6环境配置
1、安装了VS2015;
2、在Python3.5安装路径中有一个Scripts文件夹,里面有pip.exe或者类似的可执行文件,安装一下;
3、下载相对应的whl安装包,下载地址http://www.lfd.uci.edu/~gohlke/pythonlibs/;
下载:1)numpy-1.12.1+mkl-cp36-cp36m-win32.whl
2)scipy-0.19.0-cp36-cp36m-win32.whl
3)scikit_learn-0.18.1-cp36-cp36m-win32.whl
4、安装, 下载好以后,进入whl文件所在文件夹,进入cmd,输入命令:
1)pip install numpy-1.12.1+mkl-cp36-cp36m-win32.whl 回车;显示successful,不要关闭cmd;
2)pip install scipy-0.19.0-cp36-cp36m-win32.whl 回车;显示successful,不要关闭cmd;
3)pip install scikit_learn-0.18.1-cp36-cp36m-win32.whl 回车;显示successful,不要关闭cmd;
5、验证一下,输入命令: 输入import numpy 回车 无异常,输入import scipy 回车 无异常,输入import sklearn 回车 无异常
环境配置成功
三、文本聚类算法步骤
本次目标是对海量淘宝商品标题进行分类
1、准备数据(5000条淘宝商品标题)
a、采集
b、手工准备
范本: https://pan.baidu.com/s/1eR4V77W (标题原文5000行【文本文件】)
2、初步加工
a、中文分词
b、手工处理
范本: https://pan.baidu.com/s/1mi4Z9wO (分词后的标题5000行【文本文件】)
3、计算TF-IDF代码如下:
代码如下:
============================ tfidf.py begin====================================================
# coding=utf-8
import time
import re
import o