python ug_Python ugtm包_程序模块 - PyPI - Python中文网

本文介绍了Python库ugtm,它提供了sklearn兼容的GTM转换器、分类器和回归器,如eGTM、eGTC和eGTR。通过示例展示了如何使用这些工具进行数据转换、分类和回归预测。此外,ugtm还实现了GTMap的构建、绘图和投影新数据到GTM映射的功能。
摘要由CSDN通过智能技术生成

教程

sklearn集成

ugtm v2.0提供sklearn兼容的gtm转换器(egtm)、gtm分类器(egtc)和gtm回归器(egtr):from ugtm import eGTM, eGTC, eGTR

import numpy as np

# Dummy train and test

X_train = np.random.randn(100, 50)

X_test = np.random.randn(50, 50)

y_train = np.random.choice([1, 2, 3], size=100)

# GTM transformer

transformed = eGTM().fit(X_train).transform(X_test)

# Predict new labels using GTM classifier (GTC)

predicted_labels = eGTC().fit(X_train, y_train).predict(X_test)

# Predict new continuous outcomes using GTM regressor (GTR)

predicted_labels = eGTR().fit(X_train, y_train).predict(X_test)

以下部分将显示sklearn框架中未定义的函数。

基本功能

ugtm提供了gtm(生成地形图)、kgtm(核心生成地形图)、gtm分类模型(knn、bayes)和gtm回归模型的实现。ugtm还实现了交叉验证选项,可用于比较gtm分类模型和支持向量机分类模型,以及gtm回归模型和支持向量机回归模型。典型用法:#!/usr/bin/env python

import ugtm

import numpy as np

#generate sample data and labels: replace this with your own data

data=np.random.randn(100,50)

labels=np.random.choice([1,2],size=100)

#build GTM map

gtm=ugtm.runGTM(data=data,verbose=True)

#plot GTM map (html)

gtm.plot_html(output="out")

构建和绘制GTM地图(或KGTM地图)

gtm对象可以通过在数据集上运行rungtm函数来创建。rungtm的参数为:k=sqrt(节点数),m=sqrt(rbf中心数),s=rbf宽度因子,regul=正则化系数。默认情况下,期望最大化算法的迭代次数设置为200。这是一个随机数据示例:import ugtm

#import numpy to generate random data

import numpy as np

#generate random data (independent variables x),

#discrete labels (dependent variable y),

#and continuous labels (dependent variable y),

#to experiment with categorical or continuous outcomes

train = np.random.randn(20,10)

test = np.random.randn(20,10)

labels=np.random.choice(["class1","class2"],size=20)

activity=np.random.randn(20,1)

#create a gtm object and write model

gtm = ugtm.runGTM(train)

gtm.write("testout1")

#run verbose

gtm = ugtm.runGTM(train, verbose=True)

#to run a kernel GTM model instead, run following:

gtm = ugtm.runkGTM(train, doKernel=True, kernel="linear")

#access coordinates (means or modes), and responsibilities of gtm object

gtm_coordinates = gtm.matMeans

gtm_modes = gtm.matModes

gtm_responsibilities = gtm.matR

绘制HTML地图

在gtm对象上调用plot_html()函数:#run model on train

gtm = ugtm.runGTM(train)

# ex. plot gtm object with landscape, html: labels are continuous

gtm.plot_html(output="testout10",labels=activity,discrete=False,pointsize=20)

# ex. plot gtm object with landscape, html: labels are discrete

gtm.plot_html(output="testout11",labels=labels,discrete=True,pointsize=20)

# ex. plot gtm object with landscape, html: labels are continuous

# no interpolation between nodes

gtm.plot_html(output="testout12",labels=activity,discrete=False,pointsize=20, \

do_interpolate=False,ids=labels)

# ex. plot gtm object with landscape, html: labels are discrete,

# no interpolation between nodes

gtm.plot_html(output="testout13",labels=labels,discrete=True,pointsize=20, \

do_interpolate=False)

绘制pdf地图

对gtm对象调用plot()函数:#run model on train

gtm = ugtm.runGTM(train)

# ex. plot gtm object, pdf: no labels

gtm.plot(output="testout6",pointsize=20)

# ex. plot gtm object with landscape, pdf: labels are discrete

gtm.plot(output="testout7",labels=labels,discrete=True,pointsize=20)

# ex. plot gtm object with landscape, pdf: labels are continuous

gtm.plot(output="testout8",labels=activity,discrete=False,pointsize=20)

绘制多面板视图

对gtm对象调用plot_multipanel()函数。

这将绘制一个通用模型视图,显示有或无点的方式、模式、景观。

plot_multipanel函数仅在定义了标签时才起作用:#run model on train

gtm = ugtm.runGTM(train)

# ex. with discrete labels and inter-node interpolation

gtm.plot_multipanel(output="testout2",labels=labels,discrete=True,pointsize=20)

# ex. with continuous labels and inter-node interpolation

gtm.plot_multipanel(output="testout3",labels=activity,discrete=False,pointsize=20)

# ex. with discrete labels and no inter-node interpolation

gtm.plot_multipanel(output="testout4",labels=labels,discrete=True,pointsize=20, \

do_interpolate=False)

# ex. with continuous labels and no inter-node interpolation

gtm.plot_multipanel(output="testout5",labels=activity,discrete=False,pointsize=20, \

do_interpolate=False)

< H3>将新数据投影到现有GTM映射< EH3>

使用transform()函数可以将新数据投影到gtm映射上,该函数将gtm模型、训练集和测试集作为输入。然后,列车组仅用于对基于列车的测试集执行数据预处理(例如:在运行算法之前,对列车和测试集应用相同的PCA转换):#run model on train

gtm = ugtm.runGTM(train,doPCA=True)

#test new data (test)

transformed=ugtm.transform(optimizedModel=gtm,train=train,test=test,doPCA=True)

#plot transformed test (html)

transformed.plot_html(output="testout14",pointsize=20)

#plot transformed test (pdf)

transformed.plot(output="testout15",pointsize=20)

#plot transformed data on existing classification model,

#using training set labels

gtm.plot_html_projection(output="testout16",projections=transformed,\

labels=labels, \

discrete=True,pointsize=20)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值