lunes, 12 de agosto de 2013

Prediction of a model for the detection of fraud in e-transactions

The work consisted in the implementation of different classification methods of machine learning already existing, and the development of several scientific papers about classification algorithms which don’t exist already in any of the free libraries of the market; we used the language R with the IDE eclipse.

After we made the choice of the algorithm which gives the best result, the work consisted in its optimization and evaluation, using several techniques of design of algorithms. Like analysis of correctness and time complexity reduction. We used dynamic programming and heuristics.

The third task was its integration with the algorithm of Map Reduce, for its implementation in a computer cluster RHadoop, and its implementation in multi-core programming with the programming language Julia.

After the construction of the model and its implementations we made a critical analysis of performances, we optimized its parameters using the ROC space and finally we made the comparisons with the models of the market using the confusion matrix.


We developed as well an interface in Java J2SE using the libraries Swing, AWT and Prefuse to the visualization of the model and its statistics.

Lille - France, April - September 2013

lunes, 1 de abril de 2013

Optimization of sequences of observations for the automatic diagnostic

For the final project of the second year of the master, I worked in a project based in the "Decision Theoretic Troubleshooting".

It consists in a interactive application with an user interface, when it is represented a system with its components. For each component we have its probability of running, and all the system is represented by a Bayesian network.

The application help the user to generate a diagnostic for the reparation of the system finding the states with anomalies and his dependence and repercussion among the others components.

The entire application was developed in python, with the PyQt and gnuplot libraries for the user interface and the PyAgrum library for the representation of the Bayesian network.

Paris - France, January - March 2013

miércoles, 13 de febrero de 2013

Ontologies Mining


As a personal project I worked in the development of a system which search separates articles from a web site. The system takes the most important words which describe a concept amongst different writers and automatically the system builds an ontology (RDF graph) with all of the concepts with the sentences and the articles where they were found.

For the system’s development I used the python programming language using for the selection of the most important words which describe a concept, the Bag of words (BoW) algorithm where I constructed a histogram with the words used in the different articles and its repetition numbers. Each histogram element it was clustered using the k-means algorithm amongst “so repeated”, “normally repeated”, and “not repeated”, filtering and only taking the words classed as “normally repeated”.

Paris - France, February 2013

jueves, 31 de enero de 2013

Recommendation system


As an academic project I worked in the development using the python programming language of a recommendation system which has as an entry the preferences and class of several users in a web site.

I used the naive Bayes algorithm when we suppose all the variables independent, with the maximum likelihood and the priori knowledge approaches to determinate the probabilities of belonging for each class in such a way that the system could to predict the class of a new user who doesn’t have all the preferences and furthermore to predict the preferences in absence.

I coded as well an approach using the tree-augmented naive model (TAN) algorithm building a Bayesian network which we learned the mutual information between the variables to predict the class which a user belongs.

Paris - France, January 2013

domingo, 30 de diciembre de 2012

System for the analysis of web traces and clustering using the k-means algorithm


As an academic project I worked in the development of a system in the Java programming language with the Swing library for the user interface, which has as an entry a log document type “Combined log” where we take for each request the user id. We used an interval of 30 minutes to set a session. It means that several request with the same user in an interval between them lower than 30 minutes compose a session.

For the clustering of the different sessions I used the k-means algorithm with the numbers of clusters and the kind of distance as parameters. For the different kind of distances I coded the Euclidean distance, the cosine measure, and the Jaccard distance for the calculation at the moment to compare the sessions.

So that I clustered the sessions in different groups having common requests in such a way that we could to determinate statistics such as: the sites with the lowest and highest concurrence, predictions about links for the users, and relations between links.

Paris - France, December 2012

viernes, 30 de noviembre de 2012

Approach to robotics using reinforcement learning


As an academic project I coded 3 reinforcement learning algorithms to learn how to a robot could to walk.

I used the V function with the Bellman equation, the Q function with a reformulation of the Bellman equation, and the Q learning algorithm with an approach E-greedy.

For the implementation of the algorithms I used a reward vector with a punishment when the robot goes down and goes back and with a reward when the robot goes forward. Likewise I used a transition vector with the different possible robot actions having false for the transitions which make the robot falls over.

Paris - France, November 2012

miércoles, 31 de octubre de 2012

Multi-agents video-game using algorithms in reinforcement learning

As a personnel project I worked in the development of a video-game of about several agents who search in a laboratory for different components with the aim of create a nuclear bomb. The user player has to stop them to save the world.

For the development of the video-game I used the programming language Java with the swing library for the user interface and the JADE library for behavior programming in multi-agents.

For the artificial intelligence in agents I coded the MDP (Markov decision process) algorithm which allows to each agent how to find the shorter trail to the nearer bomb component, synchronizing and distributing the tasks for each agent using the Zeuthon algorithm.

For the MDP algorithm I used a reward’s vector with punishment for the position of the user player and rewards for the positions of the bomb components and an action's vector with the possible actions for the current agent.

Paris - France, October 2012

domingo, 30 de septiembre de 2012

Multi-agent simulation platform for modeling agent’s behaviors in organizations


As an academic project I developed a multi-agent platform using netlogo script programming to simulate and modeling the effort and profit exerted by heterogeneous agents in an organization.

The platform consists in a user interface with the parameters as follows:

-              -10 sets of agents, each on with a different behavior, we can choose how many agents for each type of            agent:
o   null effort: this agent always exerts the same almost null effort
o   shrinking effort: this agent halves the effort provided by its last partner
o   replicator: this agent exerts the same effort its last partner exerted in the previous interaction
o   rational: this agent exerts the best reply for its last partner effort
o   profit comparator: this agent compares its profit to its last partner's one; it increases its effort if it gave a higher profit
o   high effort: this agent always exerts the same high effort
o   average rational: this agent exerts the best reply to the average effort of its partners
o   winner imitator: this agent starts with high effort but copies its partner's effort when this one proves to yield a higher profit
o   effort comparator: this agent compares its effort to its last partner's one; it increases its effort if it is inferior to its partner's one and vice versa
o   averager: it averages its effort with its last partner's effort
-              -A noise percentage at the moment of the communication between the agents.

The system reaches to find the Nash equilibrium in the society, in a way that each agent maximize his effort without minimize his profit.

Paris - France, September 2012

viernes, 31 de agosto de 2012

Grammatical tree for an interactive English e-learning

As a personal project using the techniques which I learned in the artificial intelligence classes of semantic web at the university I developed a dictionary tool which show in an interactive interface a grammatical tree. The input of the user interface was an English word and the result was a graph with the root associate to the word as a main node in the middle and several derivative nodes with the synonyms, phrases examples, and the different uses of the word, like a verb with the different tenses, like an adjective, and so on.

For the developing of the system I used an ontology web language (OWL) where I created a RDF (Resource Description Framework) graph using a tool called Protégé, for the search in the graph in the system I used a query language called SPARQL using a java library called JENA, and finally for the user interface I used two java libraries: Swing for the user controls and Prefuse for the interactive visualization of the graph (grammatical tree).


San Cristobal - Venezuela, July - August 2012

sábado, 30 de junio de 2012

Evaluation of literary pastilles with the help plagiarism detection algorithms

This is was my final project for my master's first year in computer science - artificial intelligence degree. I developed a system, which evaluates a literary pastille against several books using the implementation and programming of plagiarism detection algorithms as Bag of words, Longest Common Substring, and Textual Detection Footprints.

The system is developed in python (Tkinter, Matplotlib, Os, Numpy), and consists in a system, which received as entry :
  - A collection of parameters.
  - One document to evaluate.
  - Several books in txt format for being evaluated with the document.

The system consists in a choice between the three differents algorithms. Each one of them algorithms give a solution with several statistics graphics regarding the property of plagiarism, and after, the system gave  in detail the more similar book with the paragraphs where it founds the plagiarism patron.

Paris - France, February – June 2012


jueves, 1 de diciembre de 2011

Searching jobs website

I worked as a freelance in the development of a website for a resources management company where I designed several user interfaces and programmed the connections between pages using PHP, HTML, CSS and javascript programming, the data base management with mysql and hosting in a tomcat server.

This system consists in the proposal of jobs offers and recommendation to the enterprises regarding the candidate profile. The system make a research in the database for a match between candidates and offers, calculating common points and values for each one. Finally the systems recommends. As well the system managed the send of CV’s from the candidates to the companies and the offers from the companies to the candidates.

Caracas - Venezuela, August – December 2011




jueves, 18 de agosto de 2011

People AFIS system

My third professional experience was working as a software engineer when I deal with a system integrated with an AFIS (Automated Fingerprint Identification System). That experience allowed me to learn how does a dynamic system integrated works, how does data compression works and how important is a user interface design for the development of scalable software.

The user interface of the system is developed in Java (GWT Google Web Toolkit, Hibernate, JNI), with a Postgresql Data base, the system was integrated with an AFIS which is a system that identify biometric characteristic in people, the AFIS was developed in C++, and the integration of the user interface and the AFIS was developed using a Java library called JNI (Java Native Interface) which is used completely object oriented. With the library I developed an object for each class of the AFIS, after I generate a .dll library which it was called with JNI library in java.

For the interface in java I use a framework called GWT which allow to convert code Java to Javascript using a MVC model. For the structure of the views GWT use documents XML to define the hierarchy of the components and tags to assign labels to each component in a way that the controller could understand which view is connected with which Controller, Finally in Model layer I used the Hibernate framework to connect with the Database, encapsulate the information requested, manage the information with the controller and show the information asked by the user in the view.

Caracas - Venezuela, January – August 2011

viernes, 31 de diciembre de 2010

Private company intranet

My second professional experience was the development of an intranet for a private company where I worked as a developer and consultant within a team, I asked to several functional employees of the company for requirements, and I developed several modules of the intranet of the company.

The system was developed with Sap KMC (Knowledge Management and Collaboration) and Java (Webdynpro), there were several modules which were just implemented and configured of the SAP KMC, and others were developed and integrated with the system using a SAP framework for to develop in Java called Webdynpro.

The Webdynpro framework works with a MVC model which connected ergonomic views already created just for implementing with java classes as controllers, I managed all the information using java code in the controller layer, asking for EJB's or Web services already created for the ERP SAP.

Caracas - Venezuela, September – December 2010


martes, 31 de agosto de 2010

Call Center System and Interactive Voice Response

My first experience as an engineer was working in a private bank where I worked beside a team in the development of a transactional call center system integrated with an IVR (Interactive Voice Response) system.

The system is an answer machine who when a client called to the bank answer him and ask him for a collection of tasks. Regarding the options which the client chose, the system executed a task or asked him for parameters. For several tasks the bank needed the assistance of a call center consultant, so the system connected with it, and using the options and parameters which the client gave stocked in a database, the system stand up a front-end for the call center consultant with the module necessary for the transaction and the options charged. In this way the consultant could help and assistance the client quickly and effectively.

I also developed a statistic module which analyses the data stocked in logs documents with a library called Apache Log4j in java, for each transaction the system stocked the main information in logs documents. And finally the system analyzes those documents making statistics about the traffic in the net, the hours when the concurrence system was at the top, the frequency of each clients doing transactions and so for.

The Front End was developed in Java (JSP Java server pages, Struts), HTML, CSS and Javascript, an IVR (Interactive Voice Response) system and a data base in Oracle.

Caracas - Venezuela, January - August 2010

martes, 1 de diciembre de 2009

A SYSTEM BASED ON CHARACTER RECOGNITION OF VENEZUELAN LICENSE PLATES

Abstract.        We describe the development of a system based on character recognition for pictures of license plates. The system is based in an expert system, using a series of image processing techniques. A previous stage of image processing is required in order to enhance the data associated to the objects to be recognized and to filter any unwanted data. We propose an approach founded on segmentation techniques to isolate the objects of interest within the image. Character recognition starts with algorithms adapted to the features which the segmented regions present, concerning the characters to be recognized. The computational tool in which the model is executed has been developed in a multi-platform environment which uses C++ and Fast Light Toolkit (FLTK) as scheme of programing and user interface development respectively. The system has been applied to 39 license plates of Venezuelan vehicles, having 249 characters to recognize, obtaining an acceptance rate of 85.26%, within a range between 72% and 94% of acceptance for each character.

Keywords: Character recognition, expert system, segmentation, algorithm, multi-platform environment.
International Conference Publication ISBN: 978-980-7161-03-9 TCG pp. 25. CIMENICS 2012


This was my final project for the obtainment of my engineering degree in computer science, and my first and until now my only scientific paper. It consists of the development of a system in the domain of shape recognition.

The system has as a data entry a bmp format image, this can be in color or in black and white. And As an output the system give a collection of strings with the possible results with the average for each one of characters. The system is developed with the language C++ with a library called FLTK for the construction of the user interface.

Technically the first phase is the transformation of the image in gray scale and raw format, just a matrix 2x2 with the values for each pixel in a scale between 0 – 255, after that the processing consist in the application of a Gaussian filter whit different parameters according the ambient properties that the image got at the obtaining moment. The third phase consist in an application of morphologic filters for to get a binary image without lose data. After that the image is segmented using an algorithm called grounding regions which depends of the position of the initial Cartesian coordinates, for make this process better we used the properties of the image which is ever centered in the respect of the y axis, so we started a route from the middle in the y axis and the 0 coordinate in the x axis, sequentially in the horizontal direction the algorithm searched for a pixel which match with the threshold chose and start the grounding region, after finish with one character the algorithm positioned in the middle of the character regarding the y axis and the final coordinate of the last character regarding the x axis. The fifth phase consisted in the recognition of each region segmented, the system used an algorithm created by me which consisted in a transformation of each region in a vectorial function of two dimensions. For doing the process of recognition we used an algorithm of machine learning to charge the data base of vectorial functions which represented each character of the alphabet, the algorithm compared each component of the function and calculated a similarity error which it was used for the estimation of the more similar character.

San Cristobal - Venezuela, July - December 2009