I have a dataset of clients (their city, name, age, gender, number of children) and another dataset about the products that they have bought. i have been asked to do:

extract knowledge about client profiles.

I don't know what knowledge should I extract.

we are studying clustering and classification so they should connect to the question. what i thought about is to make clusters of clients. but i don't know what criterisas should I depend on.

should I just use a clustering algorithm like k means and let it give me the clusters ?

any suggestion would be appreciated


These are the dataset that I have:

  1. Card: CardID, City, Region, PostalCode, CardStartDate, Gender, DateOfBirth, MaritalStatus, HasChildren, NumChildren, YoungestChild
  2. Item: ItemCode, ItemDescription, CategoryCode, SubCategoryCode, BrandCode, UpmarketFlag
  3. Transaction: Store, Date, Time, TransactionID, CardID, PaymentMethod
  4. Category: CategoryCode, CategDescription
  5. Transaction_Item: Store, Date, Time, TransactionID, ItemNumber, ItemCode, Amount
  6. SubCategory: SubCategoryCode, SubCategDescrip

The teacher said that we should categories the clients and then indicate which products best suit for each customer.


closed as unclear what you're asking by Sean Owen Jun 8 '15 at 16:19

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


You may go through two different approaches:

Unsupervised Learning (Clustering)

You can choose attributes who make someone's profile and try to cluster it (e.g. using k-means). If you look at clusters according to different attributes it may give you some insight about the data. Do not forget to exclude names as they are meaningless for analysis.

Supervised Learning (Classification)

You can use relevant attributes which may affect an output e.g. age and city may affect gender or Nr of children so if u put these as targets you can classify different users according to their age and city.

The point is that your data is not suitable for more sophisticated analysis as your features are not many and too complicated (i.e. answering the questions like age distribution among a certain gender or the relation between cities, age and number of children or something like them are the only questions can be answered)

I hope it helped and if there are more questions please comment here.


You can look at your data from different point of view so first try to choose one. For example clients can be clustered via their transactions (when they bought, what they bought, how expensive they bought, etc) or by their personal info (gender, age, payment method, etc). It gives you a first impression of your client data. Then go through clustering using all those information i.e. put personal and transactional features together. It gives you an overview of customers in general and might result in some significant clusters (categories).

After that you can look at the problem from product point of view meaning you look at the transactional features and try to see different distributions and histograms to get an overview of what's happening to the product e.g. you can set time as the x axis and try to extract different time series like how many product are sold at this point of time?, what kind of people (age, gender, etc) bought at this point of time? and so on.

For general analysis a dimensionality reduction (e.g. PCA) might reveal some information and give you insight. Please note that for any kind of analysis ONLY use relevant features e.g. IDs are not informative but categories.

The most important point for recommending product to a customer (or predicting what they buy) is to use your input/output pair properly so the customer info (age, city, when does he/she usually buy something?, etc) are inputs and products (their categories, their type, whatever u know about them) are outputs.

Good Luck!

PS1: From experience of doing an industrial version of exactly the same project I would say payment method is not much informative.

PS2: StackExchange provides an upvote and an accept button for good answers!

  • $\begingroup$ please can we talk private ? i have some questions about what you said, can i give you my email please? $\endgroup$ – Marco Dinatsoli Jun 8 '15 at 14:34
  • 1
    $\begingroup$ to be clear, I do have other data sets like a transation and items. but i thought that is for the next question, the first question is to analysi the client profile, $\endgroup$ – Marco Dinatsoli Jun 8 '15 at 14:35
  • 1
    $\begingroup$ if you have more questions please comment here and I'll modify my answer so that others also can use it. This is the philosophy behind this website :) $\endgroup$ – Kasra Manshaei Jun 8 '15 at 15:20
  • $\begingroup$ Okay, I have updated my question containing a description of the datasets. Could you help me please? Thanks in advance $\endgroup$ – Marco Dinatsoli Jun 8 '15 at 16:52

Not the answer you're looking for? Browse other questions tagged or ask your own question.