I have just very recently started to develop an interest in machine learning, and I have a particular problem in mind that I would like to start to explore.

I would like to train a system to automatically classify various attributes of an item, based on what's in a string.

Let's say I have a long list of various mutual funds, like:

Ticker  Fund Name
------  ---------
ABNAX   ABC Bond Fund, Inc: Bond Inflation Strategy
ALYSX   ABC Bond Fund, Inc: Credit Long/Short Portfolio; Advisor Class
AGRXX   DEF Bond Fund, Inc: Government Reserves Portfolio; Class 1 Shares
HIYYX   FGH Bond Fund, Inc: High Yield Portfolio; Advisor Class Shares
HIYAX   FGH Bond Fund, Inc: High Yield Portfolio; Class A Shares

… And so on.

I have a large data set that contains "complete" classifications, which have Fund Names similar to the ones above, and – in addition – a human has already given the training set items certain attributes. For example:

AIISX   Allianz Funds Multi-Strategy Trust: AllianzGI International Small-Cap Fund; Class R6 Shares

Which will have the associated attributes:

Strategy: Multi-Strategy
Geography: International
Capitalization: Small-Cap
Share class: R6

The challenge for the machine learning system will be to assign the right value to an attribute, when there are values "competing" on the same attribute. Let's say that a certain fund can have Strategy: Long-Short and Strategy: High Yield at the same time – and both terms are present in the Fund name. The system should select the right one, based on exposure to historical bias present in the training data set.


I am interested in getting a grasp of which machine learning methods and algorithms that would be able to "learn" how to classify an item, based on a large set of examples with human-classified attributes, as indicated above.

I am a complete beginner to machine learning, except for some basic knowledge of statistics, so I would just like to be pointed in a general direction.

Can/should this be accomplished with something like multiple regression, or are we looking at something else? Is some sort of natural language processing needed – or is basic keyword pattern recognition enough?

Lastly, which terminology or labeled area of expertise would summarize this problem description?


If the content/information is lengthy, I'd suggest you to use some NLP tasks for starters. I would suggest you to use some basic NLP based preprocessing because it makes our model perform better. So, the basic feature extraction can be used for this. Example, using Porter Stemmer, Lemmatizer to clean the data or removing stop words and then using ngrams for features seem to be a basic idea and a good start. There are various vectorizers which can be used to extract features the documents. For example, TfidfVectorizer calculates the frequency of a word in a document and also frequency across documents. This can be more useful than a naive Bag of words approach. Then, on top of this there are various classifiers which can be used like OneVsRestClassifier or others.

A simple approach could be selecting the input and target first. Select the parameters which are to be passed as input and the desired output. Then, decide to clean the input or not based on some NLP APIs(you can use nltk). Then decide on a classifier. You can then predict the values. Test on validation set and try various classifiers for starters.

As for terminology, I can think of Multiclass Classification only now.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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