匿名用户2021年11月11日
196阅读

技术信息

授权协议
Readme

作品详情

clj-ml

AmachieleariglibraryforClojurebuiltotopofWekaadfrieds.

Thislibrary(specifically,somedepedecies)requiresJava1.7+.

IstallatioIstalligfromClojars[cc.artifice/clj-ml"0.8.5"]IstalligfromMave

(addClojarsrepository)

<depedecy><groupId>cc.artifice</groupId><artifactId>clj-ml</artifactId><versio>0.8.5</versio></depedecy>Supportedalgorithms

Filters

Discretizatio(supervised,usupervised,PKI)Nomialtobiary(supervised,usupervised)NumerictoomialStrigtowordvectorAttributemaipulatio(reorder,add,removerage,removepercetage,etc.)Resample(supervised,usupervised)Replacemissigvalueswithmea(umericattributes)ormode(omialattributes)

Classifiers

k-NearesteighborDecisiotrees:C4.5/J4.8,Boostedstump,Radomforest,Rotatioforest,M5PNaiveBayesMultilayerperceptrosSupportvectormachies(grid-basedtraiig),SMO,SpegasosRacedIcremetalLogitBoost

Regressio

LiearLogisticPaceAdditivegradietboostig

Clusterers

k-MeasCobwebExpectatio-maximizatioUsage

APIdocumeatiocabefoudhere.

I/Oofdatauser>(use'clj-ml.io)iluser>(defds(load-istaces:arff"file:///home/josh/git/clj-ml/iris.arff"))#'user/dsuser>ds#<Istaces@relatioiris@attributesepallegthumeric@attributesepalwidthumeric@attributepetallegthumeric@attributepetalwidthumeric@attributeclass{Iris-setosa,Iris-versicolor,Iris-virgiica}@data5.1,3.5,1.4,0.2,Iris-setosa4.9,3,1.4,0.2,Iris-setosa4.7,3.2,1.3,0.2,Iris-setosa4.6,3.1,1.5,0.2,Iris-setosa5,3.6,1.4,0.2,Iris-setosa5.4,3.9,1.7,0.4,Iris-setosa4.6,3.4,1.4,0.3,Iris-setosa...user>(defds(load-istaces:arff"https://repository.seasr.org/Datasets/UCI/arff/iris.arff"))#'user/dsuser>(save-istaces:csv"iris.csv"ds)iluser>(pritl(slurp"iris.csv"))sepallegth,sepalwidth,petallegth,petalwidth,class5.1,3.5,1.4,0.2,Iris-setosa4.9,3,1.4,0.2,Iris-setosa4.7,3.2,1.3,0.2,Iris-setosa4.6,3.1,1.5,0.2,Iris-setosa5,3.6,1.4,0.2,Iris-setosa5.4,3.9,1.7,0.4,Iris-setosa4.6,3.4,1.4,0.3,Iris-setosa5,3.4,1.5,0.2,Iris-setosa4.4,2.9,1.4,0.2,Iris-setosa4.9,3.1,1.5,0.1,Iris-setosa5.4,3.7,1.5,0.2,Iris-setosa...user>(defds(load-istaces:csv"file:///home/josh/git/clj-ml/iris.csv"))#'user/dsuser>ds#<Istaces@relatiostream@attributesepallegthumeric@attributesepalwidthumeric@attributepetallegthumeric@attributepetalwidthumeric@attributeclass{Iris-setosa,Iris-versicolor,Iris-virgiica}@data5.1,3.5,1.4,0.2,Iris-setosa4.9,3,1.4,0.2,Iris-setosa4.7,3.2,1.3,0.2,Iris-setosa4.6,3.1,1.5,0.2,Iris-setosa5,3.6,1.4,0.2,Iris-setosa5.4,3.9,1.7,0.4,Iris-setosa4.6,3.4,1.4,0.3,Iris-setosa5,3.4,1.5,0.2,Iris-setosaWorkigwithdatasetsuser>(use'clj-ml.data)iluser>(defds(make-dataset"my-ame"[:legth:width{:styleil}{:kid[:good:bad]}][[1224"logish":good][85"shortish":bad]]))#'user/dsuser>ds#<ClojureIstaces@relatiomy-ame@attributelegthumeric@attributewidthumeric@attributestylestrig@attributekid{good,bad}@data12,24,logish,good8,5,shortish,bad>user>(dataset-seqds)(#<Istace12,24,logish,good>#<Istace8,5,shortish,bad>)user>(mapistace-to-map(dataset-seqds))({:kid:good,:style"logish",:width24.0,:legth12.0}{:kid:bad,:style"shortish",:width5.0,:legth8.0})user>(mapistace-to-vector(dataset-seqds))([12.024.0"logish":good][8.05.0"shortish":bad])Filterigdatasetsuser>(use'clj-ml.filters'clj-ml.io)iluser>(defds(load-istaces:csv"file:///home/josh/git/clj-ml/iris.csv"))#'user/dsuser>(defdiscretize(make-filter:usupervised-discretize{:dataset-formatds:attributes[:sepallegth:petallegth]}))#'user/discretizeuser>(deffiltered-ds(filter-applydiscretizeds))#'user/filtered-dsuser>(mapistace-to-map(dataset-seqfiltered-ds))({:class:Iris-setosa,:petalwidth0.2,:petallegth:'(-if-1.59]',:sepalwidth3.5,:sepallegth:'(5.02-5.38]'}{:class:Iris-setosa,:petalwidth0.2,:petallegth:'(-if-1.59]',:sepalwidth3.0,:sepallegth:'(4.66-5.02]'}{:class:Iris-setosa,:petalwidth0.2,:petallegth:'(-if-1.59]',:sepalwidth3.2,:sepallegth:'(4.66-5.02]'}{:class:Iris-setosa,:petalwidth0.2,:petallegth:'(-if-1.59]',:sepalwidth3.1,:sepallegth:'(-if-4.66]'}{:class:Iris-setosa,:petalwidth0.2,:petallegth:'(-if-1.59]',:sepalwidth3.6,:sepallegth:'(4.66-5.02]'}...);;thepetallegthadsepallegthattributesareowomial

Equivaletly,

user>(deffiltered-ds(->>"file:///home/josh/git/clj-ml/iris.csv"(load-istaces:csv)(make-apply-filter:usupervised-discretize{:attributes[:sepallegth:petallegth]})))Usigclassifiersuser>(use'clj-ml.classifiers'clj-ml.data'clj-ml.utils)iluser>(defds(->(load-istaces:arff"file:///home/josh/git/clj-ml/iris.arff")(dataset-set-class:class)))#'user/dsuser>(defclassifier(->(make-classifier:decisio-tree:c45)(classifier-traids)))#'user/classifieruser>(defistace(->(first(dataset-seqds))(istace-set-class-missig)))user>(classifier-classifyclassifieristace):Iris-setosa

Evaluatio:

user>(defevaluatio(classifier-evaluateclassifier:cross-validatiods10))#'user/evaluatiouser>(clojure.pprit/pprit(dissocevaluatio:summary:cofusio-matrix)){:icorrect7.0,:root-relative-squared-error36.693518966642074,:sf-etropy-gai-4076.3670930399717,:recall{:Iris-setosa0.9795918367346939,:Iris-versicolor0.94,:Iris-virgiica0.94},:kb-iformatio217.7935138195151,:kb-relative-iformatio13741.240800360849,:false-positive-rate{:Iris-setosa0.0,:Iris-versicolor0.04040404040404041,:Iris-virgiica0.030303030303030304},:percetage-correct95.30201342281879,:roc-area{:Iris-setosa0.984845423317842,:Iris-versicolor0.9456,:Iris-virgiica0.9496},:kb-mea-iformatio1.4617014350303028,:percetage-uclassified0.0,:percetage-icorrect4.697986577181208,:root-mea-squared-error0.17297908222448935,:uclassified0.0,:correlatio-coefficiet{:a"Ca'tcomputecorrelatiocoefficiet:classisomial!"},:correct142.0,:sf-mea-etropy-gai-27.358168409664238,:mea-absolute-error0.04083212821368881,:relative-absolute-error9.187228848079984,:error-rate0.04697986577181208,:kappa0.9295222650179066,:f-measure{:Iris-setosa0.9896907216494846,:Iris-versicolor0.9306930693069307,:Iris-virgiica0.94},:false-egative-rate{:Iris-setosa0.02040816326530612,:Iris-versicolor0.06,:Iris-virgiica0.06},:evaluatio-object#<Evaluatioweka.classifiers.Evaluatio@6a7272ca>,:average-cost0.0,:precisio{:Iris-setosa1.0,:Iris-versicolor0.9215686274509803,:Iris-virgiica0.94}}user>(pritl(:summaryevaluatio))CorrectlyClassifiedIstaces14295.302%IcorrectlyClassifiedIstaces74.698%Kappastatistic0.9295Meaabsoluteerror0.0408Rootmeasquarederror0.173Relativeabsoluteerror9.1872%Rootrelativesquarederror36.6935%TotalNumberofIstaces149IgoredClassUkowIstaces1iluser>(pritl(:cofusio-matrixevaluatio))===CofusioMatrix===abc<--classifiedas4810|a=Iris-setosa0473|b=Iris-versicolor0347|c=Iris-virgiicail

Savigadrestorig(traied)classifiers:

user>(serialize-to-fileclassifier"my-classifier.bi")"my-classifier.bi"user>(defclassifier2(deserialize-from-file"my-classifier.bi"))#'user/classifier2user>(classifier-classifyclassifier2istace):Iris-setosa

Textdocumethadlig:

user>(defdocs[{:id10:title"Documettitle1":fulltext"Thisisthefulltext...":has-class?false}{:id11:title"Aotherdocumettitle":fulltext"Somemore\"fulltext\";rabbitartificialmachiebaaas":has-class?true}])#'user/docsuser>(docs-to-datasetdocs"baaas-model""my-models":stemmertrue:lowercasefalse)#<Istaces@relatio'docs-weka.filters.usupervised.attribute.StrigToWordVector...'@attributeclass{o,yes}@attributetitle-1umeric@attributetitle-Aotherumeric@attributetitle-Documetumeric@attributetitle-documetumeric@attributetitle-titlumeric@attributefulltext-Someumeric@attributefulltext-Thisumeric@attributefulltext-artificiumeric@attributefulltext-baaaumeric@attributefulltext-fulltextumeric@attributefulltext-isumeric@attributefulltext-machiumeric@attributefulltext-moreumeric@attributefulltext-rabbitumeric@attributefulltext-theumeric@data{0yes,10.480453,30.480453,70.480453,110.480453,150.480453}{20.480453,40.480453,60.480453,80.480453,90.480453,120.480453,130.480453,140.480453}>user>

Wordsappearigithedatasetwillolybethoseappearigithedocumets(orasubset;bydefault,themostcommo1000words).Thispresetsaproblemwheewdocumetsareloadedadusediaclassifiertraiedootherdocumets.Theclassifierwillotkowhowtohadlewordattributesthatwereotpresetithetraiigset.

Thedocs-to-datasetfuctioprovidestheabilitytosavethetraiigdocumetsdatasetad"filter"thetestigdocumetsthroughthisdatasettoesurethesamewordattributesareextractedforbothsets.Thefollowigexampleshowsthatthewords"foo,bar,baz,quux"areigoreditheew(testig)documets,adalltheorigialattributesithetraiigdatasetareretaied.

user>(docs-to-datasetdocs"Topic""Sports"1"/tmp":stemmertrue:lowercasefalse:traiigtrue)#<Istaces@relatio'docs-weka.filters.usupervised.attribute.StrigToWordVector...'@attributeclass{o,yes}@attributetitle-1umeric@attributetitle-Aotherumeric@attributetitle-Documetumeric@attributetitle-documetumeric@attributetitle-titlumeric@attributefulltext-Someumeric@attributefulltext-Thisumeric@attributefulltext-artificiumeric@attributefulltext-baaaumeric@attributefulltext-fulltextumeric@attributefulltext-isumeric@attributefulltext-machiumeric@attributefulltext-moreumeric@attributefulltext-rabbitumeric@attributefulltext-theumeric@data{20.480453,40.480453,60.480453,80.480453,90.480453,120.480453,130.480453,140.480453}{0yes,10.480453,30.480453,70.480453,110.480453,150.480453}>user>(defdocs2[{:title"Documettitle1foobar":fulltext"bazrabbitquux":terms{"Topic"["Sports"]}}])#'user/docs2user>(docs-to-datasetdocs2"Topic""Sports"1"/tmp":stemmertrue:lowercasefalse:testigtrue)#<Istaces@relatio'docs-weka.filters.usupervised.attribute.StrigToWordVector...'@attributeclass{o,yes}@attributetitle-1umeric@attributetitle-Aotherumeric@attributetitle-Documetumeric@attributetitle-documetumeric@attributetitle-titlumeric@attributefulltext-Someumeric@attributefulltext-Thisumeric@attributefulltext-artificiumeric@attributefulltext-baaaumeric@attributefulltext-fulltextumeric@attributefulltext-isumeric@attributefulltext-machiumeric@attributefulltext-moreumeric@attributefulltext-rabbitumeric@attributefulltext-theumeric@data{0yes,10.480453,30.480453,140.480453}>user>Usigclusterersuser>(use'clj-ml.clusterers)iluser>(defds(->(load-istaces:arff"file:///home/josh/git/clj-ml/iris.arff")(dataset-remove-attribute-at4)))#'user/dsuser>ds#<Istaces@relatioiris@attributesepallegthumeric@attributesepalwidthumeric@attributepetallegthumeric@attributepetalwidthumeric@data5.1,3.5,1.4,0.24.9,3,1.4,0.24.7,3.2,1.3,0.24.6,3.1,1.5,0.25,3.6,1.4,0.25.4,3.9,1.7,0.44.6,3.4,1.4,0.3...user>(defclusterer(make-clusterer:k-meas{:umber-clusters3}))#'user/clustereruser>(clusterer-buildclustererds)iluser>clusterer#<SimpleKMeaskMeas======Numberofiteratios:6Withiclustersumofsquarederrors:6.998114004826762Missigvaluesgloballyreplacedwithmea/modeClustercetroids:Cluster#AttributeFullData012(150)(61)(50)(39)=========================================================sepallegth5.84335.88855.0066.8462sepalwidth3.0542.73773.4183.0821petallegth3.75874.39671.4645.7026petalwidth1.19871.4180.2442.0795>user>(defclustered-ds(clusterer-clusterclustererds))#'user/clustered-dsuser>clustered-ds#<ClojureIstaces@relatio'clusterediris'@attributesepallegthumeric@attributesepalwidthumeric@attributepetallegthumeric@attributepetalwidthumeric@attributeclass{0,1,2}@data5.1,3.5,1.4,0.2,14.9,3,1.4,0.2,14.7,3.2,1.3,0.2,14.6,3.1,1.5,0.2,15,3.6,1.4,0.2,15.4,3.9,1.7,0.4,14.6,3.4,1.4,0.3,15,3.4,1.5,0.2,14.4,2.9,1.4,0.2,1...Example:Homepricepredictio

https://www.ibm.com/developerworks/library/os-weka1/

user>(defhomes(make-dataset"homes"[:house-size:lot-size:bedrooms:graite:bathroom:selligPrice][[3529,9191,6,0,0,205000][3247,10061,5,1,1,224900][4032,10150,5,0,1,197900][2397,14156,4,1,0,189900][2200,9600,4,0,1,195000][3536,19994,6,1,1,325000][2983,9365,5,0,1,230000]]))#'user/homesuser>(defhomes(dataset-set-classhomes:selligPrice))#'user/homesuser>homes#<ClojureIstaces@relatiohomes@attributehouse-sizeumeric@attributelot-sizeumeric@attributebedroomsumeric@attributegraiteumeric@attributebathroomumeric@attributeselligPriceumeric@data3529,9191,6,0,0,2050003247,10061,5,1,1,2249004032,10150,5,0,1,1979002397,14156,4,1,0,1899002200,9600,4,0,1,1950003536,19994,6,1,1,3250002983,9365,5,0,1,230000>user>(defreg(classifier-trai(make-classifier:regressio:liear)homes))#'user/reguser>reg#<LiearRegressioLiearRegressioModelselligPrice=-26.6882*house-size+7.0551*lot-size+43166.0767*bedrooms+42292.0901*bathroom+-21661.1208>user>user>(classifier-predict-umericreg(make-istacehomes[3198,9669,5,1,1,il]))219328.35717359098Example:PredictigsurvivalotheTitaic

https://www.kaggle.com/c/titaic-gettigStarted

Firstgloballyreplacealldoublequotedstrigs""foo""withbackslashquotedstrigs:\"foo\".Wekadoesothadletheformer.

功能介绍

clj-ml A machine learning library for Clojure built on top of Weka and friends. This library (spe...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论