Showing posts with label Machine Learning. Show all posts
Showing posts with label Machine Learning. Show all posts

Friday, September 22, 2017

Let’s first write a simple Image Recognition Model using Inception V3 and Keras

Image Recognition

#TENSORFLOW #KERAS #NN #NEURALNET #INCEPTIONV3 #MACHINELEARNING #DEEPLEARNING

Our brains make vision seem easy. It doesn't take any effort for humans to tell apart a lion and a jaguar, read a sign, or recognize a human's face. But these are actually hard problems to solve with a computer: they only seem easy because our brains are incredibly good at understanding images.

SEVERAL PRE-TRAINED NETWORKS :

VGG16, VGG19, ResNet50, Inception V3, and Xception

State-of-the-art deep learning image classifiers in Keras

Keras ships out-of-the-box with five Convolutional Neural Networks that have been pre-trained on the ImageNet dataset:

  1. VGG16
  1. VGG19
  1. ResNet50
  1. Inception V3
  1. Xception



Inception V3


The goal of the inception module is to act as a “multi-level feature extractor” by computing 1×13×3, and 5×5 convolutions within the same module of the network — the output of these filters are then stacked along the channel dimension and before being fed into the next layer in the network.
The original incarnation of this architecture was called GoogLeNet, but subsequent manifestations have simply been called Inception vN where N refers to the version number put out by Google.

LET'S WRITE A NICE LITTLE PROGRAM TO CLASSIFY IMAGES 

What are we going to Detect?
What does this Image say to a Computer?



Let's check it out :

import numpy as np
from keras.preprocessing import image
from keras.applications import inception_v3

# Load pre-trained image recognition model
model = inception_v3.InceptionV3()

# Load the image file and convert it to a numpy array
img = image.load_img('../input/Huggies.jpg', target_size=(299, 299))
input_image = image.img_to_array(img)

# Scale the image so all pixel intensities are between [-1, 1] as the model expects
input_image /= 255.
input_image -= 0.5
input_image *= 2.

# Add a 4th dimension for batch size (as Keras expects)
input_image = np.expand_dims(input_image, axis=0)

# Run the image through the neural network

predictions = model.predict(input_image)

# Convert the predictions into text and print them
predicted_classes = inception_v3.decode_predictions(predictions, top=1)
imagenet_id, name, confidence = predicted_classes[0][0]
#Let's print what the DL Program say
print("This is a {} with {:.4}% confidence!".format(name, confidence * 100))

Output: This is a diaper with 95.24% confidence!

Tuesday, September 19, 2017

HIT PROFIT BY MACHINE LEARNING BASED TRADING

I bought FRESHTROP Fruits at INR 94 on 08th AUGUST 2017 .


WHY ????– a very detailed study on prices across last 10 years or more, using logistic regression and it should that it’s at it lowest trading price.


Today it trades at 143 , today is 19th September , so in around a little more than a month.


Profit per share = 49 Rupees


If you have bought 1000 Shares, ( Investment INR 94000/- Less than a Lakh ) , you have gained around 50,000/- in just 1 month.


Tip – buy now, it will more to 250/- in a period of 1 years or little more .



It’s always make sense to invest with Machine Learning Statistics .


You can follow my blog on investment tips at http://saptak-firsttry.blogspot.in/

#StockTips #MachineLearning #LogisticRegression #AlgorithmicTrading

Saturday, September 16, 2017

Predictions and Suggestions from a machine learning based Algorithmic trading

#MachineLearning #AlgortihmicTrading #StockMarketAutomatedTrading  #LogisticRegression #Boosting

Predictions and Suggestions from a machine learning based Algorithmic trading



An algorithm is a specific set of clearly defined instructions aimed to carry out a task or process.

Algorithmic trading (automated trading, black-box trading, or simply algo-trading) is the process of using computers programmed to follow a defined set of instructions for placing a trade in order to generate profits at a speed and frequency that is impossible for a human trader. The defined sets of rules are based on timing, price, quantity or any mathematical model. Apart from profit opportunities for the trader, algo-trading makes markets more liquid and makes trading more systematic by ruling out emotional human impacts on trading activities.

We can create a Regression formula like below :




The dependent variable is the Return on capital invested and can be run across all stocks.

Error term ei can be boosted using Boosting Algos and thus increasing the prediction accuracy.

Now how to choose your Variables and what can be the ideal STOCK Equation :

YOY Quarterly sales growth  > 15 and
YOY Quarterly profit growth  > 20 and
Net Profit latest quarter  > 1 and
G Factor >= 7 and
Net Profit latest quarter > .33 AND
Other income latest quarter < Net Profit latest quarter * .5 AND
Net Profit preceding year quarter <= 0 AND
Expected quarterly net profit > 0 AND
Sales latest quarter > Sales preceding year quarter   AND
Return on invested capital > 25 and
Earnings yield > 15 and
Book value > 0 AND
Market Capitalization > 15

AND
Graham Number > Current price AND
PB X PE <=22.50 AND
PEG Ratio >0 AND
PEG Ratio <1 .5="" and="" o:p="">
Altman Z Score >=2.5 AND
Sales growth 5Years >25 AND
Profit growth 5Years >15 AND
Current ratio >2 AND
Market Capitalization >250 AND
Sales >100  AND
Piotroski score > 7
AND
Dividend yield > 2 AND
Average 5years dividend > 0 AND
Dividend last year > Average 5years dividend AND
Profit after tax > Net Profit last year * .8 AND
Dividend last year > .35 AND
( Profit growth 3Years > 10 OR
Profit growth 5Years > 10 OR
Profit growth 7Years > 10 ) 
OR
(Market Capitalization > 3000) AND
(Average return on equity 10Years Years > 20) AND
(Debt to equity < 1.5) AND
(Interest Coverage Ratio > 2) AND
( PEG Ratio <= 1) AND
(Profit growth 5Years > 20) 

AND
YOY Quarterly sales growth  > 40 and
YOY Quarterly profit growth  > 40 and
Average return on capital employed 3Years >30 and
Price to Earning <6 o:p="">
OR
Sales growth 10Years > 10 AND
Profit growth 10Years > 12 AND
OPM 10Year > 12 AND
Debt to equity < 0.5 AND
Current ratio > 1.5 AND
Altman Z Score > 3 AND
Average return on equity 10Years > 12 AND
Average return on capital employed 10Years >12 AND
Return on invested capital > 15 AND
Sales last year / Total Capital Employed > 2 AND
Average dividend payout 3years >15

AND
PEG Ratio <1 and="" o:p="">
Sales > 500 AND
Price to Earning < 40 AND
Profit growth > 20 AND
Debt to equity < 0.2 AND
Price to Cash Flow > 5

OR

EPS last year >20 AND
Debt to equity <.1 AND
Average return on capital employed 5Years >35 AND
Market Capitalization >500 AND
OPM 5Year >15

AND
Net Profit latest quarter > Net Profit preceding quarter AND
Net Profit preceding quarter > Net profit 2quarters back AND
Net profit 2quarters back > Net profit 3quarters back

AND

EPS latest quarter > 1.2 * EPS preceding year quarter AND
EPS latest quarter > 0 AND
YOY Quarterly sales growth > 25 AND
EPS last year > EPS preceding year AND
EPS > EPS last year AND
Profit growth 3Years > 25 AND
Return on equity > 17 AND
Down from 52w high < 15 AND
Market Capitalization > 100

AND

Price to Earning >0 and Price to Earning <10 5years="" and="" equity="" growth="" on="" return="">10 and Dividend yield >1 and Return on capital employed >10

AND
Profit growth 5Years > Sales growth 5Years AND
Sales growth 5Years > 3 AND
Return on equity > 15 AND
Working capital 5Years back < 0
AND
Price to Earning >0 and Return on equity 5years growth > 5 and Dividend yield >0  


Note : DEBT reacts inversely to the equation . Term period will be a spread over last 15 to 20 Years. 

Now , applying boosting algorithm ( like XGBoost) you can reduce the error coefficients.

Based on the above equation and a little variation choosing a flattened NN( Neural Network ) below stocks can be looked upon for Indian stock market.

1)  RELIANCE INDUSTRIES
2)  DCB BANK
3)  KAJARIA CERAMICS
4)  INFOSYS

5)  INDO COUNT INDUSTRIES

Thursday, September 14, 2017

Did you know TensorFlow is Life-Saving ? Read- on

#MachineLearning #DeepLearning #ML #AI #ArtificialIntelligence #TensorFlow

Beginner’s guide to Tensorflow

Did you know TensorFlow is Life-Saving ? Read- on

INTRODUCTION:

The primary software tool of Deep Learning is TensorFlow. It is an open source artificial intelligence library, using data flow graphs to build models.

 It allows developers to create large-scale neural networks with many layers.

USED FOR:

TensorFlow is mainly used for:

1)  Voice/Sound Recognition
2)  Text Based Applications
3)  Image Recognition
4)  Video Detection


INTERESTING FACTS :

 Nasa ( National Aeronautics and Space Administration) is designing a system with TensorFlow for orbit classification and object clustering of asteroids. As a result, they can classify and predict NEOs (near earth objects). ( So, in a way TensorFlow is life-saving!!! )




NOW TECHNICAL STUFF :

TensorFlow is a library for numerical computation where data flows through the graph.

 Data in TensorFlow is represented by n-dimensional arrays called Tensors.

Graph is made of data(Tensors) and mathematical operations
§  Nodes on the graph: represent mathematical operations. 
§  Edges on the graph: represent the Tensors that flow between operations. 

There is one more aspect in which TensorFlow is very different from any other programming language.

In TensorFlow, you first need to create a blueprint of whatever you want to create. While you are creating the graph, variables don’t have any value. Later when you have created the complete graph, you have to run it inside a session, only then the variables have any values.

import tensorflow as tf  


Graph in TensorFlow:

GRAPH is the backbone of TensorFlow and every computation/operation/variables reside on the graph. Everything that happens in the code, resides on a default graph provided by TensorFlow. You can access this graph by:

graph = tf.get_default_graph()

Next big thing, Session!

A GRAPH  is used to define operations, but the operations can  only run within a SESSION. Graphs and sessions are created independently of each other.

Sess = tf.Session()
Tensors in Tensorflow:

TensorFlow holds Data in tensors

i)                Constants

are constants whose value can’t be changed. You can declare a constant like this: 

              a=tf.constant(1.0)

ii)                   Variables

are again Tensors which are like variables in any other language. 

b=tf.Variable(2.0,name=None)
iii)                 PlaceHolders


are tensors which are waiting to be initialized/fed. Placeholders are used for training data which is only fed when the code is actually run inside a session. What is fed to Placeholder is called feed_dict. Feed_dict are key value pairs for holding data:

a = tf.placeholder("float")

Monday, September 11, 2017

Why XGBoost ? and Why is it so Powerful in Machine Learning

#MachineLearning #Algorithms #Boosting #XGBoost #MLAlgorithms #DataScience 

Why XGBoost ?
Xgboost is short for eXtreme Gradient Boosting package.
BTW what is boosting?

Quick Explanation

Two common terms used in ML is Bagging & Boosting
Bagging: It is an approach where you take random samples of data, build learning algorithms and take simple means to find bagging probabilities.
Boosting: Boosting is similar, however the selection of sample is made more intelligently. We subsequently give more and more weight to hard to classify observations.
Now coming back to XGBoost, what is it so important ?
In broad terms, it’s the efficiency, accuracy and feasibility of this algorithm. 
It has both linear model solver and tree learning algorithms. So, what makes it fast is its capacity to do parallel computation on a single machine.
 It also has additional features for doing cross validation and finding important variables. 

Features -  XGBoost

  • Speed: it can automatically do parallel computation on Windows and Linux, with OpenMP. It is generally over 10 times faster than the classical gbm.
  • Input Type: it takes several types of input data:
    • Dense Matrix: R's dense matrix, i.e. matrix ;
    • Sparse Matrix: R's sparse matrix, i.e. Matrix::dgCMatrix ;
    • Data File: local data files ;
    • xgb.DMatrix: its own class (recommended).
  • Sparsity: it accepts sparse input for both tree booster and linear booster, and is optimized for sparse input ;
  • Customization: it supports customized objective functions and evaluation functions.

Numeric VS categorical variables

Xgboost manages only numeric vectors.
What to do when you have categorical data?
A simple method to convert categorical variable into numeric vector is One Hot Encoding.



Tree Boosting in a Nutshell


We first briefly review the learning objective in tree boosting. For a given data set with n examples and m features a tree ensemble model (shown in Fig. above ) uses K additive functions to predict the output.


Industry Usage?


It has also been widely adopted by industry users, including Google, Alibaba and Tencent, and various startup companies. According to a popular article in Forbes, xgboost can scale with hundreds of workers (with each worker utilizing multiple processors) smoothly and solve machine learning problems involving Terabytes of real world data.

 



Followers