Building a Behavioral Profile Model


The majority of us go shopping. We purchase all kinds of things, starting from simple essentials such as meals to various entertainment venues, for example, music. While we are shopping, we’re not simply discovering stuff for using in our everyday life, also we reveal our involvement in different social institutions. Our behavior and choices on the internet create our behavioral profiles.
When we purchase an item it has some features which can differ or make the same from each other stuff. For instance, the value of product, dimensions, or kind are instances of various characteristics. Additionally those numerical or itemized arranged characteristics, also there are text characteristics which are not itemized. As an example, the text of item information or consumer testimonials is also a type of various characteristics.
Analysis of textual content along with other natural language processing procedures could be really useful for extraction of interpretation from those unstructured textual content, which generally is beneficial in duties such as behavioral profiling.
This post presents an example of the way to build a behavioral profile model with text classification. It tells how to use SciKit, effective Python-based machine learning program for creating models and analysis for implementing this model to simulated consumers and their product or service buying history. In this particular scenario, you’ll build a model that assigns to customers one of the listed music-listener profiles, such as raver, goth or metal. The task is founded on the particular products every customer buys along with the interacting textual product info.

The Scenario

Take a look at the listed scenario. You possess info allocation which contains various consumer profiles. Every profile consists of a selection of brief, natural language-based information for any product which customer bought. Listed is an example of product info for a boot.

Description: Rivet Head offers the latest fashion for the industrial, goth, and darkwave subculture, and this men’s buckle boot is no exception. Features synthetic, man-made leather upper, lace front with cross-buckle detail down the shaft, treaded sole and combat-inspired toe, and inside zipper for easy on and off. Rubber outsole. Shaft measures 13.5 inches and with about a 16-inch circumference at the leg opening. (Measurements are taken from a size 9.5.) Style: Men’s Buckle Boot.

The objective is to classify every one existing and upcoming customer into one of the behavioral profiles, according to product info. Here is demonstrated the example: the curator is using product samples for building a behavioral profile, a behavioral model, a customer profile and last of all a customer behavioral profile.

The primary step would be to consider the function of a curator and grant the system a concept of every behavioral profile. One method for this is manual seeding the system with samples of every item. These samples will assist in the definition of a behavioral profile. In terms of this argumentation we’ll categorize the users into one of the musical behavioral profiles:

  • Punk
  • Goth
  • Hip hop
  • Metal
  • Rave

Provide types of products defined as appearing punk like information of punk albums and music groups, for instance, “Never Mind the Bollocks” by the Sex Pistols. Other items should consist of things regarding hairstyle or clothes.

Software Setup

Every needed information and source code could be obtained from the bpro project on JazzHub. When you’ll get the data to make sure you have installed Python, Skikit Learn and all the dependencies.
Once you unpack tar you will see two YAML files which contain profile information. The product descriptions are artificially created by using a body of docs. Periodicity of word occasions in product descriptions has recognized the process of creation.
Two data files are provided for analysis:

  • customers.yaml — Contains a list of consumers, for every customer included a list of products descriptions and also correct behavioral profile. The correct behavioral profile is that which you know it is truly right. For instance when you are reviewing data of user goth to verify that these buys show that the customer is definitely a goth user.
  • behavioral_profiles.yaml— Contains a list of the profiles (punk, goth, etc.), as well as example list of products descriptions which explain that profile.

Building a behavioral profile model

You should begin with creating a term-count-based depiction of the body by using SciKit’s CountVectorizer. The body object is a basic listing of strings containing product descriptions.
The next step is to tokenize product descriptions into personal words and create a phrase dictionary. Every phrase located by the analyzer throughout the procedure of setting is assigned a unique integer catalog that tells a column in the output matrix.

You can get an output of some items to check which was tokenized. Just use command print vectorizer.get_feature_names()[200:210].
Keep in mind that existing vectorizer is without “stemmed” words. Stemming is a procedure of receiving a basic source or origin form for inflected or derivative words. As an illustration, big is a basis stem for the word bigger. SciKit is unable to manage more engaged tokenization, like stemming, lemmatizing and compound splitting, however, you are able to use specialized tokenizers, for example from Natural Language Toolkit library.

The procedures of tokenization like stemming make it easier to decrease the number of needed training samples, due to the fact numerous forms of a word don’t demand statistical depiction. You may utilize additional tips to decrease training demands, like applying a dictionary of types. As an example: in case you have a selection of goth musical group names, you are able to build basic word token, like goth_band, and include it to the description before creating functions. Considering this even if you’ll meet a band initially in a description, the model manages in the process where it manages alternative groups which types it knows.

In the computer learning, monitored specification troubles like this are posed by initial definition a set of features along with a matching target. Then the selected algorithm tries to locate the model with the best suitability to information, it reduces faults against an identified set of data. Consequently, the next step is to create the characteristic and target label vectors. It is usually wise to randomize the monitoring just in case verification procedure doesn’t do that.

At this point, you are in a position to select classifier and educate your behavioral profile model. Before this, it will be wise to examine the model to make sure it works.
Once you’ve built and tested the model, you will be able to test on many user profiles. You may use the MapReduce framework and transfer trained profiles to work nodes. Every node then receives a set of client profiles with their buying history and applies the model. Next, when the model is applied, your clients are placed on a behavioral profile. You are able to use profile assignments for many purposes. For instance, you can use it for targeting promotions or use the recommendation system for your customers.