# Best algorithm to create segment in case of categorical variables [closed]

I have a SampleData (2653 observation, 11 features) of bank transaction done in the 1-month timeframe. Download Dataset Size=250KB

I want to come up with algorithms (Single or Combine) that can segment users into different categories.

Since there are mostly categorical features involved except tx_amount, Which algorithm is best suited here, or how should I approach this problem to create user segments?

## closed as too broad by Stephen Rauch♦, Icyblade, Kiritee Gak, timleathart, oW_♦Jan 4 '18 at 23:07

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. 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.

Before focusing on a specific algorithm or analytic tool, first identify one or more specific research hypotheses you would like to test with this data.

• What are the reasons why you want to segment these customers?
• Based on what you already know about the business, what information might be required to meaningfully distinguish between customers? Does this information already exist in a useable format? If not, what steps would I need to take to gather the necessary information?
• What would be my null hypothesis / hypotheses?
• For each null hypothesis, what would be my alternate hypothesis?

If you're trying to group customers into market segments, you'll need more information than what is provided in this data set.

For example, a number of the variables in the data set referenced in the original post don't change across transactions within an individual customer (e.g. a business account never does individual account transactions), and therefore likely contribute little valuable information to the analysis (i.e. you already know that minors behave differently than adults). Starting with a set of research hypotheses will allow you to determine the data you need to collect in order to conduct a useful analysis of the data.

Do not approach this by using whatever algorithm you can get to run.

There is no use in just doing something that you don't understand.

Instead, you will first need to identify what is a good way to group data that solves your problem. Then you can begin looking for an algorithm that helps solving your problem (and not some useless other problem).