标签:nic span uri 分类预测 开始 设置 概率 最大化 相关
python分类预测模型的特点
模型
|
模型特点
|
位于
|
---|---|---|
SVM | 强大的模型,可以用来回归,预测,分类等,而根据选取不同的和函数,模型可以是线性的/非线性的 | sklearn.svm |
决策树 | 基于"分类讨论,逐步细化"思想的分类模型,模型直观,易解释 | sklearn.tree |
朴素贝叶斯 | 基于概率思想的简单有效的分类模型,能够给出容易理解的概率解释 | sklearn.naive_bayes |
神经网络 | 具有强大的拟合能力,可疑用于拟合,分类等,它有多个增强版本,如递神经网络,卷积神经网络,自编吗器等,这些是深度学习的模型基础 | Keras |
逻辑回归 | 比较基础的线性分类模型,很多时候是简单有效的选择 | sklearn.linear_model |
随机森林 | 思想跟决策树类似,精度通常比决策树要高,缺点是由于随机性, 丧失了决策树的可解释性 | sklearn.ensemble |
类别
|
包括主要算法
|
---|---|
划分(分裂)方法 | K-Means算法(K-均值),K-MEDOIDS算法(K-中心点),CLARANS算法(基于选择的算法) |
层次分析方法 | BIRCH算法(平衡迭代规约和聚类),CURE算法(代表点聚类),CHAMLEON算法 |
基于密度的方法 | DBSCAN算法(基于密度连接区域).DENCLUE算法(密度分布函数),OPTICS算法(对象识别排序) |
基于网络的方法 | STING(统计信息网络),CLIOUE算法(聚类高维空间),WAVE-CLUSTER算法(小波变换) |
基于模型的方法 |
统计学方法,神经网络方法 |
算法名称
|
算法描述
|
---|---|
K-Means | K-均值聚类也称为快速聚类法,在最小化误差函数的基础上家境数据划分为预订的类数K,该算法原理简单并便于处理处理数据 |
K-中心点 | K-均值算法对孤立点的敏感性, K-中心点算法不采用簇中对象的平均值作为簇中心,而选用簇中离平均值最近的对象作为簇中心 |
系统聚类 | 系统聚类也称为多层次聚类,分类的单位由高到低呈树形结构,且所处的为孩子越低,其包含的对象就越少,但这些对象间的共同特征越多,该聚类的方法只适合小数据量的时候使用,数据量大的时候速度会非常快 |
符号
|
含义
|
符号
|
含义
|
---|---|---|---|
k | 聚类簇的个数 | ei | 簇Ei的聚类中心 |
Ei | 第i个簇 | ni | 第i个簇中样本的个数 |
x | 对象(样本) |
ID
|
R(最近一次消费时间间隔)
|
F(消费频率)
|
M(消费总金额)
|
---|---|---|---|
1 | 37 | 4 | 579 |
2 | 35 | 3 | 616 |
3 | 25 | 10 | 394 |
4 | 52 | 2 | 111 |
5 | 36 | 7 | 521 |
6 | 41 | 5 | 225 |
7 | 56 | 3 | 118 |
8 | 37 | 5 | 793 |
9 | 54 | 2 | 111 |
10 | 5 | 18 | 1086 |
import pandas as pd k = 3 # 聚类的类别 iteration = 500 # 聚类最大循环次数 data = pd.read_csv("sales_bak.csv",sep=",",header=None, names=["ID", "R", "F", "M"]) data_zs = 1.0*(data - data.mean()) / data.std() # 数据标准化 from sklearn.cluster import KMeans model = KMeans(n_clusters=k, n_jobs=4, max_iter=iteration) # 分为k类并发数4 model.fit(data_zs) # 开始聚类 # 打印结果 r1 = pd.Series(model.labels_).value # 统计各个类别的数目 r2 = pd.DataFrame(model.cluster_centers_) # 找到聚类中心 r = pd.concat([r2,r1], axis=1) # 横向连接(0时纵向),得到聚类中心对应的类别下的数目 r.columns = list(data.column) + [u‘类别数目‘] # 重命名表头 print r # 详细输出原始数据机器类别 r = pd.concat([data, pd.Series(model.labels_, index=data.index)], axis=1) # 详细输出每个样本对应的类别 r.columns = list(data.columns) + [u‘聚类类别‘] # 重命名表头 r.to_excel("sales.xlxs")
对象名
|
函数功能
|
所属工具箱
|
---|---|---|
KMeans | K均值聚类 | sklearn.cluster |
AffinityPropahation | 吸引力传播聚类,2007年提出,几乎优于所有的其他方法,不需要指定聚类数,单运行效率较低 | sklearn.cluster |
MeanShift | 均值漂移聚类 | sklearn.cluster |
SpectralClustring | 谱聚类,具有效果比k均值好,速度比K均值快等特点 | sklearn.cluster |
AgglomerativeClustering | 层次聚类,给出一棵聚类层次树 | sklearn.cluster |
DBSCAN | 具有噪声的基于密度的聚类方法 | sklearn.cluster |
BIRCH | 综合的层次聚类算法,可以处理大规模数据的聚类 | sklearn.cluster |
# -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding("utf-8") """ 使用神经网络算法预测销量高低 """ from sklearn.manifold import TSNE import pandas as pd k = 3 # 聚类的类别 iteration = 500 # 聚类最大循环次数 data = pd.read_csv("sales_bak.csv", sep="\t",header=None, names=["a", "b", "c"]) # 读取csv中的数据 data_zs = 1.0 * (data - data.mean()) / data.std() # 数据标准化 tsne = TSNE() # 实例化一个TENS空白的对象 tsne.fit_transform(data_zs) # 进行数据降维 tsne = pd.DataFrame(tsne.embedding_,index = data_zs.index) # 转换数据格式 import matplotlib.pyplot as plt plt.rcParams[‘font,sans-serif‘] = [‘SimHei‘] # 用来正常显示中文标签 plt.rcParams[‘zxes.unicode_minus‘] = False # 用来正常显示负号 d = tsne[r[u‘聚类类别‘] == 0 ] plt.plot(d[0], d[1], ‘r.‘) d = tsne[r[u‘聚类类别‘] == 1 ] plt.plot(d[0], d[1], ‘go‘) d = tsne[r[u‘聚类类别‘] == 2] plt.plot(d[0], d[1], ‘b*‘) plt.show()
标签:nic span uri 分类预测 开始 设置 概率 最大化 相关
原文地址:https://www.cnblogs.com/ljc-0923/p/11785900.html