Naive Bayes

Bayes theorem helps us to incorporate new evidences/information into our model.

Code from sklearn

from sklearn.naive_bayes import GaussianNB

clf=GaussianNB()

clf.fit(features_train,labels_train)

Bayesian Learning:

Linear in the number of variables.

Naive Bayes assumes conditional independence across attributes and doesn’t capture inter-relationship among attributes.

Gaussian naive Bayes assumes continues values associated with each class are distributed in Gaussian fashion.

Even if the probability of one of the attributes given label becomes zero, the whole thing ends up being zero.

Maximum Likelihood :

Advertisements

Design patterns

Design that is more automated and require less maintenance is the standard.

Setters can be used for validation and constraining the value to be set to a particular range.

Getters can be used for returning default value, if the variable is not set yet or for lazy instantiation.

Can’t make objects out of abstract class. Abstract class can have some non abstract members.

Interface have only abstract methods.

Creational:

1. Singleton:
1. Can only have one instance of that particular class.
2. President of a country, System in java.
3. Private constructor, singleton using enum.
4. @Singleton annotation.
5. Difficult to unit test – why?
2. Factory:
1. Having a logic to return a particular subclass object, when asked for a class object.
3. Abstract Factory:
4. Builder:
1. Separates object construction from its representation.
2. interfaces.
5. Prototype:
1. Chess game initial setup.
2. Copying/cloning the initial setup rather than creating the initial setup everytime you need it. Reduce redundant work.
3. Copy a fully initialized instance.
4. Link to code.

How to create objects?

Structural:

Inheritance? Interface? etc.

How are different classes related?

How are objects composed?

1. Adapter:
1.  Match interfaces of different classes. helps to communicate.
2. Composite:
3. Proxy:
1. An object representing another object, like credit card as a proxy of bank account.
2. Remote object and Home object(proxy).
4. Flyweight:
1. Reuse same objects by resetting values of the objects appropriately instead of creating new objects every time.
5. Facade:
1. Event managers, process, execute, group many steps into a single step.
6. Bridge:
7. Decorator:
1. Add responsibilities to objects dynamically.
2. Ex: adding different Toppings for different pizzas, adding discounts to different orders.

Behavioral:

Interactions between different objects.

1. Template method:
2. Mediator:
1. instead of applications talking to each other, we use an enterprise service bus.
3. Chain of responsibility:
1. Passing a request through different objects.
4. Observer:
1. A way of notifying a change to a number of classes.
2. This pattern is implemented in java.
3. Subject extends Observable.
4. Who wants to listen implements Observer and registers with the subject.
5. Strategy:
1. change the implementation/strategy of an interface at a later point in time.
2. Pass whatever implementation needs to be used as an argument.
6. Command:
1. Encapsulate a command request as an object.
2. java.lang.runnable threads are implemented like this.
7. State:
8. Visitor:
1. Adding new operations to a particular class without inheritance and wi
9. Iterator:
1. Sequentially access the elements of a collection.
10. Interpreter:
11. Memento:
1. Saving states of something as objects to restore them in future point of time if necessary.
2. Undo/Redo operations.

Strategy pattern:

What:

When:

Observer pattern:

when:

What:

Factory pattern :

Abstract Factory pattern:

Singleton pattern:

Builder pattern:

Prototype pattern:

Try to put state and behaviors in different classes.

Dependency injection

Enable a class to be generic by making it disown the responsibility of defining an object in itself. Make other classes define the input object for it.

If you want to change the input object , you dont need to change the original class with dependency injection.

A spring container contains a set of objects or beans.

Essence of Rich Dad Poor Dad

Identify what are assets and what are liabilities.

Increase asset column.

Don’t work for money, make money work for you.

Rich buy luxuries late.

Rich guys income statement and balance sheet.

How corporations help rich with taxes.

Corporations earn, spend and then pay taxes on the rest.

Individuals earn, get taxed and then spend.

Listing some assets:

1. Businesses that do not require my presence.
2. Stocks – Fortunes are made in new stock issues(new stocks are tax-free).
3. Bonds.
4. Income generating real estate.
5. Notes (IOUs).
6. Royalties from intellectual property.

Dimensions of financial literacy:

1. Accounting:
2. Investing:
3. Understanding markets:
4. The law:

Random number Generator

The ideal random number generator is impossible. So, we usually have a pseudo-random generator which will be seeded by a number initially and then calculated subsequent random numbers using elements like current system time etc. For debugging stochastic programs, we have random.seed() in python which will generate the same sequence of random numbers again and again as we seed it with the same number.

Hash tables

Arrays:

1. Random access.
2. Fixed size.

Linked list:

1. Not Random access.
2. Not fixed size.

What we need is something that has random access and not fixed size.

Solution: Hash table

Uses a hash function to determine where to store a given key value.

Same hash function is used later to search for where a given key value is stored.

Collision:

If the hash output of two keys point to the same location.

Solution: each location has a linked list of values.