0% found this document useful (0 votes)
118 views70 pages

New Project Report

This document is a project report submitted by four students to fulfill the requirements of a Bachelor of Engineering degree. The report details the development of a stock feature predictor webapp and chatbot. The report includes sections on the introduction, requirements analysis, feasibility study, technologies used, project analysis, UML diagrams, testing methodology, outputs, and conclusions. The students developed the project under the guidance of their professor to analyze stock data and predict features using machine learning techniques.

Uploaded by

hardik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
118 views70 pages

New Project Report

This document is a project report submitted by four students to fulfill the requirements of a Bachelor of Engineering degree. The report details the development of a stock feature predictor webapp and chatbot. The report includes sections on the introduction, requirements analysis, feasibility study, technologies used, project analysis, UML diagrams, testing methodology, outputs, and conclusions. The students developed the project under the guidance of their professor to analyze stock data and predict features using machine learning techniques.

Uploaded by

hardik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 70

A

PROJECT REPORT

ON

“Stock Feature Predictor WebApp & ChatBot”

Submitted in partial fulfilment for the award of Bachelor of


Engineering degree of Rajasthan technical university, Kota

2020-2021

Guided by: Submitted by:


Mr. Bhoopesh Kumawat Danish Khan[17EJCEC062]

Prof of ECE Deepakshi Joshi[17EJCEC062]

Deepesh Malhotra[17EJCEC067]

Hardik Gandhi[17EJCEC082]

DEPARTMENT OF ELECTRONICS & COMMUNICATION


ENGINEERING

JAIPUR ENGINEERING COLLEGE AND RESEARCH


CENTRE, SHRI RAM KI NANGAL, VIA SITAPURA RIICO JAIPUR- 302
022 May, 2021
RAJASTHAN TECHNICAL UNIVERSITY, KOTA
JAIPURENGINEERING COLLEGE AND RESEARCH
CENTREDEPARTMENT OF INFORMATION
TECHNOLOY

CERTIFICATE

This is to certify that the work, which is being presented in the project
entitled
“Stock Feature Predictor WebApp & ChatBot” submitted by Mr. Danish
Khan, Ms. Deepakshi Joshi, Mr.Deepesh Malhotra, Mr. Hardik Gandhi the
students of fourth year (VIII Semester) B.Tech in Electronics and
communication in partial fulfilment for the award of degree of Bachelor of
Technology is a record of student’s work carried out and that the project has
not formed the basis for the award previously of any other degree, diploma,
fellowship or any other similar title.

(signature of guide)
Mr. Bhoopesh Kumawat Mr. Vikas Sharma
Project Guide Project Coordinator
Professor, ECE Professor, ECE
CANDIDATE’S DECLARATION

We hereby declare that the work, which is being presented in the Project
Stage I entitled “Stock Feature Predictor WebApp & ChatBot” in partial
fulfilment for the award of Degree of “Bachelor of Technology” in
Electronics and communication, and submitted to the Department of
Electronics and communication, Jaipur
Engineering College andResearch Centre, Affiliated to Rajasthan
Technical University is a record of our own work carried out under the
Guidance of Mr.
Sandeep Vyas , TPO of Department of Electronics and communication.

Danish Khan[17EJCEC062]

iii
ACKNOWLEDGEMENT

We wish to express our deep sense of gratitude to our Project


Coordinator Mr. Vikas Sharma and Project Guide Mr. Bhoopesh
Kumawat ,Jaipur Engineering College and Research Centre, Jaipur for
guiding us from the inception till the completion of the project. We
sincerely acknowledge them for giving their valuable guidance, support
for literature survey, critical reviews and comments for our Project.
We would like to first of all express our thanks to Mr. Arpit Agrawal,
Director of JECRC, for providing us such a great infrastructure and
environment for our overall development.

We express sincere thanks to Dr. V. K. Chandna, Principal of JECRC, for


his kind cooperation and extendible support towards the completion of our
project.

Words are inadequate in offering our thanks to Mr. Sandeep Vyas,


HOD of Department of Electronics and communication, for consistent
encouragement and support for shaping our project in the presentable
form. We also like to express our thanks to all supporting IT faculty
members who have been a constant source of encouragement for
successful completion of the project.

Also our warm thanks to Jaipur Engineering College and Research


Centre, who provided us this opportunity to carry out this prestigious
Project and enhance our learning in various technical fields.
Danish Khan Deepakshi Joshi Deepesh Malhotra Hardik
Gandhi

[17EJCEC062] [17EJCEC065] [17EJCEC067] [17EJCEC082]

Iv CHAPTER INDEX
S. No. TITLE PAGE NO.

Certificate (Project Completion ) i

Declaration iii

Acknowledgement v

Abstract vi

1. INTRODUCTION

1.1 Proposed system 3

1.2 Purpose of the project 3

1.3 Problem in existing system 4

1.4 Solution to the problem 4

1.5 Project structure 5

2. REQUIREMENT ANALYSIS 6

2.1System Requirement 6

2.2Operating System Requirements 6

2.3Hardware Requirements 7

2.4Technology Required 7

2.5Need Of The System 7

2.6Scope Of The System 8

3. FEASIBILITY STUDY 9

3.1 Operational Feasibility 9

3.2 Economical Feasibility 9

3.3Technical Feasibility 9
4. TECHNOLOGY USED 10

4.1 HTML, CSS 11

4.2 JavaScript, AJAX 13

5. PROJECT ANALYSIS 25

5.1 Study of the system 25

5.2 Input and output 25

5.3 Process model used with justification 32

6. UML DIAGRAMS 35

6.1 Use case diagrams 35

6.2 Sequence Diagram 36

6.3 Data flow diagrams 37

7. TESTING METHODLOGY 38

7.1 Testing 38

7.2 Validation and Verification 38

7.3 Test case design 40

8. OUTPUTS/SCREENSHOTS 43

CONCLUSION 4

FUTURE SCOPE 5

REFERENCES 5

MAPPING OF COURSE OUTCOMES WITH PROGRAM OUTCOMES 5


ABSTRACT

In the finance world stock trading is one of the most important


activities. Stock market prediction is an act of trying to
determine the future value of a stock other financial instrument
traded on a financial exchange.  This paper explains the
prediction of a stock using Machine Learning. The programming
language is used to predict the stock market using machine
learning is Python. In this paper we propose a Machine Learning
(ML) approach that will be trained from the available stocks data
and gain intelligence
and then uses theacquired knowledge foran accurate prediction.
In this context this study uses a machine learning technique
called Support Vector Machine (SVM) to predict stock prices
for the large and small capitalizations and in the three different
markets, employing prices with both daily and up-to-the-minute
frequencies.

Stock market prediction is an act oftrying to determine the future


value of a stock other financial instrument traded on a financial
exchange. This paper explains the prediction of a stock using
Machine Learning. The technical and fundamental or the time
series analysis is used by themost of the stockbrokers while
making the stock predictions.

CHAPTER-1

INTRODUCTION
Modeling and Forecasting of the financial market have been an attractive
topic to scholars and researchers from various academic fields. The
financial market is an abstract concept where financial commodities such
as stocks, bonds, and precious metals transactions happen between
buyers and sellers. In the present scenario of the financial market world,
especially in the stock market, forecasting the trend or the price of stocks
using machine learning techniques and artificial neural networks are the
most attractive issue to be investigated.

As Giles explained, financial forecasting is an instance of signal


processing problem which is difficult because of high noise, small
sample size, non-stationary, and nonlinearity. The noisy characteristics
mean the incomplete information gap between past stock trading price
and volume with a future price. The stock market is sensitive with the
political and macroeconomic environment. However, these two kinds
of information are too complex and unstable to gather. The above
information that cannot be included in features are considered as
noise. The sample size of financial data is determined by real world
transaction records. On one hand, a larger sample size refers a longer
period of transaction records; on the other hand, large sample size
increases the uncertainty of financial environment during the 2 sample
period. In this project, we use stock data instead of daily data in order
to reduce the probability of uncertain noise, and relatively increase the
sample size within a certain period of time.

By non-stationarity, one means that the distribution of stock data is


various during time changing. Non-linearity implies that feature
correlation of different individual stocks is various. Efficient
Market Hypothesis was developed by Burton G. Malkiel in 1991.

In Burton’s hypothesis, he indicates that predicting or forecasting the


financial market is unrealistic, because price changes in the real world
are unpredictable. All the changes in prices of the financial market are
based on immediate economic events or news. Investors are profit-
oriented, their buying or selling decisions are made according to most
recent events regardless past analysis or plans. The argument about
this Efficient Market Hypothesis has never been ended. So far, there is
no strong proof that can verify if the efficient market hypothesis is
proper or not. However, as Yaser claims, financial markets are
predictable to a certain extent. The past experience of many price
changes over a certain period of time in the financial market and the
undiscounted serial correlations among vital economic events
affecting the future financial market are two main pieces of evidence
opposing the Efficient Market Hypothesis.

In recent years, machine learning methods have been extensively


researched for their potentials in forecasting and prediction of the
financial market. Multi-layer feed forward neural networks, SVM,
reinforcement learning, relevance vector machines, and recurrent neural
networks are the hottest topics of many approaches in financial market
prediction field. Among all the machine learning methods, neural
networks are well studied and have been successfully used for
forecasting and modeling financial market. “Unlike traditional machine
learning models, the network learns from the examples by constructing
an inputoutput mapping for the problem at hand. Such an approach
brings to mind the study of nonparametric statistical inference; the term
“nonparametric” is used here to signify the fact that no prior
assumptions are made on a statistical model for the input data”,
according to Simon.

As Francis E.H. Tay and Lijuan Cao explained in their studies, Neural
networks are more noise tolerant and more flexible compared with
traditional statistical models. By noise tolerance, one means neural
networks have the ability to be trained by incomplete and overlapped
data. Flexibility refers to that neural networks have the capability to
learn dynamic systems through a retraining process using new data
patterns. Long shortterm memory is a recurrent neural network
introduced by Sepp Hochreite and Jurgen Schmidhuber in 1997.

LSTM is designed to forecast, predict and classify time series data even
long time lags between vital events happened before. LSTMs have been
applied to solve several of problems; among those, handwriting
Recognition and speech recognition made LSTM famous. LSTM has
copious advantages compared with traditional backpropagation neural
networks and normal recurrent neural networks. The constant error
back propagation inside memory blocks enables in LSTM ability to
overcome long time lags in case of problems similar to those
discussed above; LSTM can handle noise, distributed representations,
and continuous values; LSTM requires no need for parameter fine-
tuning, it works well over a broad range of parameters such as
learning rate, input gate bias, and output gate bias. The objective of
our project can be generalized into two main parts. We examine the
feasibility of LSTM in stock market forecasting by testing the model
with various configurations.

1.1 Proposed System

Predicting how the stock market will perform is one of the most difficult
things to do. There are so many factors involved in the prediction –
physical factors vs. physiological, rational and irrational behaviour etc.
All these aspects combine to make share prices volatile and very
difficult to predict with a high degree of accuracy.

However, Machine learning acts as a game changer in this domain.


Using features like the latest announcements about an organization, their
quarterly revenue results, etc., machine learning techniques have the
potential to unearth patterns and insights we didn’t see before, and these
can be used to make unerringly accurate predictions.
Hence, using machine learning we have devised a stock prediction
project that can predict the prices of stock share efficiently. We have
modeled and predicted the stock returns of NIFTY 50 using LSTM. We
collected 5 years of historical data of NIFTY 50 and used it for the
training and validation purposes for the model.

1.2 Purpose of the project

The stock market is a market that enables the seamless exchange of


buying and selling of company stocks. Every Stock Exchange has its
own Stock Index value. The index is the average value that is calculated
by combining several stocks. This helps in representing the entire stock
market and predicting the market’s movement over time.
The stock market can have a huge impact on people and the country’s
economy as a whole. Therefore, predicting the stock trends in an
efficient manner can minimize the risk of loss and maximize profit.
Companies list shares of their stock on an exchange through a process
called an initial public offering or IPO. Investors purchase those shares,
which allow the company to raise money to grow its business. Investors
can then buy and sell these stocks among themselves, and the exchange
tracks the supply and demand of each listed stock.

That supply and demand help determine the price for each security or the
levels at which stock market participants — investors and traders — are
willing to buy or sell.

1.3 Problem in existing system

There are a lot of complicated financial indicators and also the


fluctuation of the stock market is highly violent. The general research
associated with the stock or share market is highly focusing on neither
buy nor sell but it fails to address the dimensionality and expectancy of a
new investor.
Stock and financial markets tend to be unpredictable and even illogical,
just like the outcome of the elections. Due to these characteristics,
financial data should necessarily possess a rather turbulent structure
which often makes it hard to find reliable patterns.

The common trend towards the stock market among the society is that it
is highly risky for investment or not suitable for trade so most of the
people are not even interested. The seasonal variance and steady flow of
any index will help both existing and naïve investors to understand and
make a decision to invest in the stock/share market.

1.4 Solution to the problem

As the technology is getting advanced, the opportunity to gain a steady


fortune from the stock market is increased and it also helps experts to
find out the most informative indicators to make a better prediction. The
prediction of the market value is of great importance to help in
maximizing the profit of stock option purchase while keeping the risk
low.

Modeling turbulent structures requires machine learning algorithms


capable of finding hidden structures within the data and predict how they
will affect them in the future. The most efficient methodology to achieve
this is Machine Learning and Deep Learning.

Deep learning can deal with complex structures easily and extract
relationships that further increase the accuracy of the generated results.
Machine learning has the potential to ease the whole process by
analyzing large chunks of data, spotting significant patterns and
generating a single output that navigates traders towards a particular
decision based on predicted asset prices.
Stock prices are not randomly generated values instead they can be
treated as a discrete-time series model which is based on a set of well-
defined numerical data items collected at successive points at regular
intervals of time. Since it is essential to identify a model to analyze
trends of stock prices with adequate information for decision making, we
made a machine learning model for stock prediction that’s capable of
both.

Recurrent neural networks (RNN) have proved one of the most powerful
models for processing sequential data. Long Short-Term memory is one
of the most successful RNNs architectures. LSTM introduces the
memory cell, a unit of computation that replaces traditional artificial
neurons in the hidden layer of the network. With these memory cells,
networks are able to effectively associate memories and input remote in
time, hence suit to grasp the structure of data dynamically over time with
high prediction capacity.

CHAPTER – 2
REQUIREMENT ANALYSIS

After the extensive analysis of the problems in the system, we


are familiarized with the requirement that the current system
needs. The requirement that the system needs is categorized into
the functional and non-functional requirements. These
requirements are listed below: Functional Requirements
Functional requirement are the functions or features that must be
included in any system to satisfy the business needs and be
acceptable to the users. Based on this, the functional
requirements that the system must require are as follows:
The system should be able to generate an approximate share
price.

The system should collect accurate data from the NEPSE website in consistent
manner.

Non-functional requirement is a description of features, characteristics and


attribute of the system as well as any constraints that may limit the boundaries
of the proposed system. The nonfunctional requirements are essentially based
on the performance, information, economy, control and security efficiency and
services. Based on these the non-functional requirements are as follows:
The system should provide better accuracy.

The system should have simple interface for users to use

To perform efficiently in short amount of time

2.1 SYSTEM REQUIREMENT:

GPU: 1xTesla K80 , having 2496 CUDA cores, compute 3.7,


12GB(11.439GB Usable) GD

DR5 VRAM

CPU: 1xsingle core hyper threaded i.e(1 core, 2 threads) Xeon


Processors @2.3Ghz

(No Tur bo Boost) , 45MB Cache RAM: ~12.6 GB Available


Disk: ~320 GB Available

For every 12hrs or so Disk, RAM, VRAM, CPU cache etc data that is on
our alloted virtual machine will get erased.

2.2 Need of the system

The art of forecasting the stock prices has been a difficult task for many
of the researchers and analysts. In fact, investors are highly interested in
the research area of stock price prediction. For a good and successful
investment, many investors are keen in knowing the future situation of
the stock market. Good and effective prediction systems for stock
market help traders, investors, and analyst by providing supportive
information like the future direction of the stock market. In this work,
we present a recurrent neural network (RNN) and Long Short-Term
Memory (LSTM) approach to predict stock market indices.

The stock market runs on predictions. Most people don’t believe them but still,
everyone wants them. The commonest query in the market between two people
is Market kya lage? (What do you think of the market?). This is asking for a
prediction, even if you don’t believe that the other man has the capability of
making one or not.

To gain a steady fortune from the stock market and to help experts to
find out the most informative indicators to make a better prediction. The
prediction of the market value is of great importance to help in
maximizing the profit of stock option purchase while keeping the risk
low.

2.3 Scope of the project

Analysis of stocks using data mining will be useful for new investors to
invest in stock market based on the various factors considered by the
software.
Stock market includes daily activities like sensex calculation, exchange
of shares. The exchange provides an efficient and transparent market for
trading in equity, debt instruments and derivatives.

Our software will be analyzing stocks based on company’s stock value.


The stock values of company depend on many factors, some of them are:

1. Demand and Supply:

Demand and Supply of shares of a company is a major reason price


change in stocks.

When Demand increases and supply decreases, then price also


rises and vice versa.

2. Corporate results:

This will be regarding to the profits or progress of the company


over a span of time say 3 months.
3. Popularity:

Main Strength in hands of share buyer. Popularity of a company


can effect on buyers. Like if any good news of a company, may
result in rise of stock price. And bad news may break dreams.
The stock value depends on other factors as well, but we are
taking into consideration only these main factors.
CHAPTER – 3

FEASIBILITY STUDY

Simply put, stock market cannot be accurately predicted. The future, like
any complex problem, has far too many variables to be predicted. The
stock market is a place where buyers and sellers converge. When there
are more buyers than sellers, the price increases. When there are more
sellers than buyers, the price decreases. So, there is a factor which
causes people to buy and sell. It has more to do with emotion than logic.
Because emotion is unpredictable, stock market movements will be
unpredictable. It’s futile to try to predict where markets are going. They
are designed to be unpredictable.
There are some fundamental financial indicators by which a company’s
stock value can be estimated. Some of the indicators and factors are:
Price-to-Earning (P/E) Ratio, Price-toEarning Growth (PEG) Ratio,
Price-to-Sales (P/S) Ratio, Price/Cash Flow (P/CF) Ratio, Price-to-Book
Value (P/BV) Ratio and Debt-to-Equity Ratio. Some of the parameters
are available
and accessible on the web but all of them aren’t. So we are confined to
use the variables that are available to us. The proposed system will not
always produce accurate results since it does not account for the human
behaviours. Factors like change in company’s leadership, internal
matters, strikes, protests, natural disasters, change in the authority cannot
be taken into account for relating it to the change in Stock market by the
machine. The objective of the system is to give a approximate idea of
where the stock market might be headed. It does not give a long term
forecasting of a stock value. There are way too many reasons to
acknowledge for the long term output of a current stock. Many things
and parameters may affect it on the way due to which long term
forecasting is just not feasible

CHAPTER – 4

TECHNOLOGY USED

4. FRONT-END TECHNOLOGIES:

4.1 Html:

HTML stands for Hyper Text Markup Language. It is used to design


web pages using markup language. HTML is the combination of
Hypertext and Markup language. Hypertext defines the link between the
web pages. Markup language is used to define the text document within
tag which defines the structure of web pages. This language is used to
annotate (make notes for the computer) text so that a machine can
understand it and manipulate text accordingly. Most of markup (e.g.
HTML) languages are human readable. Language uses tags to define
what manipulation has to be done on the text.
HTML is a markup language which is used by the browser to
manipulate text, images and other content to display it in required
format. HTML was created by Tim Berners-Lee in 1991. The first ever
version of HTML was HTML 1.0 but the first standard version was
HTML 2.0 which was published in 1999. Elements and Tag: HTML
uses predefined tags and elements which tells the browser about content
display property. If a tag is not closed then browser applies that effect
till end of page.
HTML page structure: The Basic structure of HTML page is given
below. It contain some elements like head, title, body, ... etc. These
elements are used to build the blocks of webpages.
<DOCTYPE! html>: This tag is used to tells the HTML version. This
currently tells that the version is HTML 5.
<html>: This is called HTML root element and used to wrap all the
code.
<head>: Head tag contains metadata, title, page CSS etc.

<body>: Body tag is used to enclosed all the data which a web page has
from texts to links.

All of the content that you see rendered in the browser is contained
within this element.

Hypertext Markup Language (HTML) is an authoring tool that is used in


creating Internet

Web pages. When using HTML a block of text is surrounded with tags
that indicate to an Internet browser how the text is to appear (for
example, in bold face or italics). HTML is a collection of platform-
independent styles (indicated by markup tags) that define the various
components of a Web document. It is the preferred tool for creating Web
pages because it is understood by all Internet browsers.

HTML is not a perfect tool for designing graphic-intensive sites or those


that contain a large overall amount of information. The fact that the
documents contained in a HTML structure are static pages does not
make it the tool of choice for sites that contain animation, either. It is
getting better in that department thanks to the development of different
HTML extensions and other upgrades.

4.2 CSS:

CSS stands for Cascading Style Sheets. It is a style sheet language


which is used to describe the look and formatting of a document written
in markup language. It provides an additional feature to HTML. It is
generally used with HTML to change the style of web pages and user
interfaces. It can also be used with any kind of XML documents
including plain XML, SVG and XUL.

CSS is used along with HTML and JavaScript in most websites to create
user interfaces for web applications and user interfaces for many mobile
applications.
Cascading Style Sheet (CSS) is used to set the style in web pages which
contain HTML elements. It sets the background colour, font-size, font-
family, colour, … etc property of elements in a web pages.

CSS is not an overly complex language. But even if you’ve been writing
CSS for many years, you probably still come across new things —
properties you’ve never used, values you’ve never considered, or
specification details you never knew about.

In my research, I come across new little bit all the time, so I thought I’d
share some of them in this post. Admittedly, not everything in this post
will have a ton of immediate practical value, but maybe you can
mentally file some of these away for later use.
In CSS, selectors declare which part of the markup a style applies to by
matching tags and attributes in the markup itself.
Selectors may apply to the following:
all elementsof a specific type, e.g. the second-level

headers h2 elements specified by attribute, in


particular: o id: an identifier unique within the
document
o class: an identifier that can annotate multiple elements in a document

elements depending on how they are placed relative to others in the


document tree. Classes and IDs are case-sensitive, start with letters, and can
include alphanumeric characters, hyphens and underscores. A class may apply to
any number of instances of any elements. An ID may only be applied to a single
element.
Pseudo-classesare used in CSS selectors to permit formatting based on
information that isnot contained in the document tree. One example of a
widely used pseudo-class is :hover, which identifies content only when
the user "points to" the visible element, usually by holding the mouse
cursor over it. It is appended to a selector as in a:hoveror #
elementid:hover. A pseudo-class classifies document elements, such as:
linkor :visited, whereas a pseudo-element makes a selection that may
consist of partial elements, such as ::first-lineor ::first-letter.
Selectors may be combined in many ways to achieve great specificity
and flexibility.[7]Multiple selectors may be joined in a spaced list to
specify elements by location, element type, id, class, or any combination
thereof. The order of the selectors is important. For example, div.
MyClass {color: red;}applies to all elements of class myClass that are
inside div elements, whereas. My Class div {color: red;}applies to all
div elements that are in elements of class my Class.

4.3 JAVASCRIPT:
JavaScript is a lightweight, interpreted programming language. It is
designed for creating network-centric applications. It is complimentary
to and integrated with Java. JavaScript is very easy to implement
because it is integrated with HTML. It is open and cross-platform.
Javascript is a MUST for students and working professionals to become
a great Software Engineer specially when they are working in Web
Development Domain. I will list down some of the key advantages of
learning Javascript:

Javascript is the most popular programming language in the world and


that makes it a programmer’s great choice. Once you learnt Javascript, it
helps you developing great front-end as well as back-end softwares

using different Javascript based frameworks like jQuery, Node.JS etc.


Javascript is everywhere, it comes installed on every modern web
browser and so to learn Javascript you really do not need any special
environment setup. For example Chrome, Mozilla Firefox , Safari and
every browser you know as of today, supports Javascript.

Javascript helps you create really beautiful and crazy fast websites. You
can develop your website with a console like look and feel and give your users
the best Graphical User Experience.
JavaScript usage has now extended to mobile app development, desktop app
development, and game development. This opens many opportunities for you as
Javascript Programmer.
Due to high demand, there is tons of job growth and high pay for those
who know JavaScript. You can navigate over to different job sites to see what
having JavaScript skills looks like in the job market.
Great thing about Javascript is that you will find tons of frameworks and
Libraries already developed which can be used directly in your software
development to reduce your time to market.
There could be 1000s of good reasons to learn Javascript Programming.
But one thing for sure, to learn any programming language, not only
Javascript, you just need to code, and code and finally code until you
become expert.JavaScript is an object-based scripting language which is
lightweight and cross-platform.JavaScript is not a compiled language,
but it is a translated language. The JavaScript Translator (embedded in
the browser) is responsible for translating the JavaScript code for the
web browser. As a multi-paradigm language, JavaScript supports
eventdriven,functional,and imperative(including objectorientedand
prototype-based)programming styles.It has APIsfor working with text,
arrays, dates, regularexpressions, and the DOM, but the language itself
does not include any I/O, such as networking,storage, or
graphicsfacilities. It relies upon the host environment in which it is
embedded to provide these features.Initially only implemented client-
sidein web browsers, JavaScript engines are now embedded in many
other types of host software, including server-sidein web servers and
databases, and in non-web programs such as word processors and
PDFsoftware, and in runtime environments that make JavaScript
available for writing mobile and desktop applications, including desktop
widgets.
4.4 AJAX:

AJAX stands for Asynchronous JavaScript and XML. AJAX is a new


technique for creating better, faster, and more interactive web
applications with the help of XML, HTML, CSS, and Java Script.

Ajax uses XHTML for content, CSS for presentation, along with
Document Object Model and JavaScript for dynamic content
display.
Conventional web applications transmit information to and from
the sever using synchronous requests. It means you fill out a
form, hit submit, and get directed to a new page with new
information from the server.
With AJAX, when you hit submit, JavaScript will make a request to the
server, interpret the results, and update the current screen. In the purest sense,
the user would never know that anything was even transmitted to the server.
XML is commonly used as the format for receiving server data,
although any format, including plain text, can be used.

AJAX is a web browser technology independent of web server


software.

A user can continue to use the application while the client


program requests information from the server in the background.
Intuitive and natural user interaction. Clicking is not required,
mouse movement is a sufficient event trigger.
Data-driven as opposed to page-driven.

Rich Internet Application Technology


AJAX is the most viable Rich Internet Application (RIA) technology so
far. It is getting tremendous industry momentum and several tool kit and
frameworks are emerging.
But at the same time, AJAX has browser incompatibility and it is
supported by JavaScript, which is hard to maintain and debug.

AJAX is Based on Open Standards

AJAX is based on the following open standards −

Browser-based presentation using HTML and Cascading Style


Sheets (CSS).

Data is stored in XML format and fetched from the server.

Behind-the-scenes data fetches using XMLHttpRequest objects


in the browser.

JavaScript to make everything happen.

AJAX cannot work independently. It is used in combination with other


technologies to create interactive webpages.

JavaScript

Loosely typed scripting language.

JavaScript function is called when an event occurs in a page.

Glue for the whole AJAX operation.

DOM

API for accessing and manipulating structured documents.

Represents the structure of XML and HTML documents.


CSS

Allows for a clear separation of the presentation style from the


content and may be changed programmatically by JavaScript
XMLHttpRequest

JavaScript object that performs asynchronous interaction with the server

While Ajax may be integral to your planning of the website’s


architecture, ensure that all content is accessible through
conventional server-side methods.

Content Is Not Backwards-Compatible

This problem occurs when a designer has incorporated JavaScript and


Ajax enhancements into their website’s architecture without making
provisions for browsers that have disabled JavaScript.

Nothing is wrong with planning a website with JavaScript and Ajax; in


fact, in today’s market, JavaScript considerations should be integral to
the planning process. But you should still ensure that the website is
backwards-compatible (or that it degrades gracefully) upon launch.

Although X in Ajax stands for XML, JSON is used more than XML
nowadays because of its many advantages such as being lighter and a
part of JavaScript. Both JSON and XML are used for packaging
information in the Ajax model.

Traditionally, a web page has to send a request to the server to receive


new data; that is, the page requests data from the server. With server-
sent events, it's possible for a server to send new data to a web page at
any time, by pushing messages to the web page. These incoming
messages can be treated as Events +data inside the web page. See also:
Using server-sent events.
The Extensible Markup Language (XML) is a W3C-recommended
general-purpose markup language for creating special-purpose markup
languages. It is a simplified subset of SGML, capable of describing many
different kinds of data. Its primary purpose is to facilitate the sharing of data
across different systems, particularly systems connected via the Internet.

JXON stands for lossless Javascript XML Object Notation, it is a


generic name by which is defined the representation of Javascript object
trees (JSON) using XML.

TECHNOLOGIES USED IN BACKEND:

MACHINE LEARNING:

Humans can expand their knowledge to adapt the changing environment.


To do that, they must “learn”. Learning can be simply defined as the
acquisition of knowledge or skills through study, experience, or being
taught. Although learning is an easy task for most of the people, to
acquire new knowledge or skills from data is too hard and complicated
for machines. Moreover, the intelligence level of a machine is directly
relevant to its learning capability.

Machine Learning is the field of study that gives computers the


capability to learn without being explicitly programmed. ML is one of
the most exciting technologies that one would have ever come across.

As it is evident from the name, it gives the computer that which makes it
more similar to humans: The ability to learn. Machine learning is
actively being used today, perhaps in many more places than one would
expect.

The study of machine learning tries to deal with this complicated task. In
other words, machine learning is the branch of artificial intelligence that
tries to find an answer to this question: how to make computer learn?
When we say that the machine learns, we mean that the machine is able
to make predictions from examples of desired behavior or past
observations and information. The name machine learning was coined in
1959 by Arthur Samuel.More formal definition of machine learning by
Tom Mitchell is, “A computer program is said to learn from experience
E with respect to some class of tasks T and performance measure P, if its
performance at tasks in T, as measured by P, improves with experience
E.” This definition of the tasks in which machine learning is concerned
offers a fundamentally operational definitionrather than defining the
field in cognitive terms. The definition also indicates the main goal of
machine learning: the design of such programs.

In other words, Machine learning is an application of artificial


intelligence (AI) that provides systems the ability to automatically learn
and improve from experience without being explicitly programmed.
Machine learning focuses on the development of computer programs
that can access data and use it learn for themselves.

The process of learning begins with observations or data, such as


examples, direct experience, or instruction, in order to look for patterns
in data and make better decisions in the future based on the examples
that we provide. The primary aim is to allow the computers learn
automatically without human intervention or assistance and adjust
actions accordingly.

It involves the scientificstudyof algorithmsand statistical modelsthat


computer systemsuse to perform a specific task without using explicit
instructions, relying on patterns and inference instead.

It is seen as a subset of artificialintelligence. Machine learning


algorithms build a mathematical modelbased on sample data, known as
"training data", in order to make predictions or decisions without being
explicitly programmed to perform the task.

Machine learning algorithms are used in a wide variety of applications,


such as email filteringand computer vision, where it is difficult or
infeasible to develop a conventional algorithm for effectively performing
the task.

Machine learning is closely related to computational statistics, which


focuses on making predictions using computers. The study of
mathematical optimizationdelivers methods, theory and application
domains to the field of machine learning. Data miningis a field of study
within machine learning, and focuses on exploratory dataanalysisthrough
unsupervised learning. In its application across business problems,
machine learning is also referred to as predictive analytics.

Terminologies of Machine Learning

Model
A model is a specific representationlearned from data by
applying some machine learning algorithm. A model is also
called hypothesis.

Feature
A feature is an individual measurable property of our data. A set
of numeric features can be conveniently described by a feature
vector.Feature vectors are fed as input to the model. For
example, in order to predict a fruit, there may be features like
color, smell, taste, etc.
Note:Choosing informative, discriminating and independent
features is a crucial step for effective algorithms. We generally
employ a feature extractorto extract the relevant features from
the raw data.

Target
A target variable or label is the value to be predicted by our
model. For the fruit example discussed in the features section,
the label with each set of input would be the name of the fruit
like apple, orange, banana, etc.

Training
The idea is to give a set of inputs(features) and it’s expected
outputs(labels), so after training, we will have a model
(hypothesis) that will then map new data to one of the categories
trained on.

Prediction
Once our model is ready, it can be fed a set of inputs to which it
will provide a predicted output(label).
Advantages of Machine Learning–

Machine learning applications are widely used in sectors such as


financial, banking, healthcare, rental, education, economics, agriculture
etc.
Facebook and Google are using machine learning to push relevant
advertisements based on users past search behaviour.
In dynamic or uncertain environments, machine learning can handle
multi-dimensional and multi-variety of data.
Machine learning allows time cycle reduction and efficient utilization.

Machine learning includes processes that can lead to automation of tasks


by increased uses of algorithms in different applications.
In machine learning, there are tools available to provide continuous
quality improvements in large and complex process environments.

Disadvantages of Machine Learning

Acquisition is the major challenge of Machine Learning, for this data


needsto be processed based on different algorithms before providing it
as inputto its respective algorithms. Interpretation of results is also
another major challenge to determine theeffectiveness of machine
learning.
Different machine learning techniques are tried based on which action
oralgorithm needs to be used and when it is to be used. Machine
learning needs lots of data. A fixed pattern of data or historical data is
another limitation of machinelearning. As it works with statistical
truths, it will be difficult to prove orpredict anything without historical
data. Error diagnosis and correction is another limitation of machine
learning.

DEEP LEARNING:

Deep Learning is a subfield of machine learning concerned with


algorithms inspired by thestructure and function of the brain called
artificial neural networks.

If you are just starting out in the field of deep learning or you had some
experience with neural networks some time ago, you may be confused. I
know I was confused initially and so were many of my colleagues and
friends who learned and used neural networks in the 1990s and early
2000s.
The leaders and experts in the field have ideas of what deep learning is
and these specific and nuanced perspectives shed a lot of light on what
deep learning is all about. What is Neural Network?

Neural Networks are set of algorithms which closely resemble the


human brain and are designed to recognize patterns. They interpret
sensory data through a machine perception, labelling or clustering raw
input. They can recognize numerical patterns, contained in vectors, into
which all real-world data (images, sound, text or time series), must be
translated. Artificial neural networks are composed of a large number of
highly interconnected processing elements (neuron) working together to
solve a problem

An ANN usually involves a large number of processors operating in


parallel and arranged in tiers. The first tier receives the raw input
information — analogous to optic nerves in human visual processing.
Each successive tier receives the output from the tier preceding it, rather
than from the raw input — in the same way neurons further from the
optic nerve receive signals from those closer to it. The last tier produces
the output of the system..

What is Recurrent Neural Network (RNN)?


Recurrent Neural Network is a generalization of feedforward neural
network that has an internal memory. RNN is recurrent in nature as it
performs the same function for every input of data while the output of
the current input depends on the past one computation. After producing
the output, it is copied and sent back into the recurrent network. For
making a decision, it considers the current input and the output that it
has learned from the previous input.

Unlike feedforward neural networks, RNNs can use their internal state
(memory) to process sequences of inputs. This makes them applicable to
tasks such as unsegmented, connected
handwriting recognition or speech recognition. In other neural networks,
all the inputs are independent of each other. But in RNN, all the inputs
are related to each other.

Humans don’t start their thinking from scratch every second. As you
read this essay, you understand each word based on your understanding
of previous words. You don’t throw everything away and start thinking
from scratch again. Your thoughts have persistence.

Traditional neural networks can’t do this, and it seems like a major


shortcoming. For example, imagine you want to classify what kind of
event is happening at every point in a movie. It’s unclear how a
traditional neural network could use its reasoning about previous events
in the film to inform later ones.

Recurrent neural networks address this issue. They are networks with
loops in them, allowing information to persist.

Advantages of Recurrent Neural Network


1. RNN can model sequence of data so that each sample can be assumed to
bedependent on previous ones
2. Recurrent neural network are even used with convolutional layers to extend
the effective pixel neighbourhood.

Disadvantages of Recurrent Neural Network

1. Gradient vanishing and exploding problems.

2. Training an RNN is a very difficult task.

3. It cannot process very long sequences if using tanhor reluas an


activation function. What is Long Short Term Memory (LSTM)?

Long Short Term Memory networks – usually just called “LSTMs” – are
a special kind of RNN, capable of learning long-term dependencies.
They were introduced by Hochreiter &
Schmidhuber (1997),and were refined and popularized by many people
in following work.1They work tremendously well on a large variety of
problems, and are now widely used.

LSTMs are explicitly designed to avoid the long-term dependency


problem. Remembering information for long periods of time is
practically their default behavior, not something they struggle to learn!

All recurrent neural networks have the form of a chain of repeating


modules of neural network. In standard RNNs, this repeating module
will have a very simple structure, such as a single tanh layer. The key to
LSTMs is the cell state, the horizontal line running through the top of the
diagram.

The cell state is kind of like a conveyor belt. It runs straight down the
entire chain, with only some minor linear interactions. It’s very easy for
information to just flow along it unchanged. The LSTM does have the
ability to remove or add information to the cell state, carefully regulated
by structures called gates.
Gates are a way to optionally let information through. They are
composed out of a sigmoid neural net layer and a pointwise
multiplication operation. The sigmoid layer outputs numbers between
zero and one, describing how much of each component should be let
through. A value of zero means “let nothing through,” while a value of
one means “let everything through”.

Long Short-Term Memory (LSTM) networks are a modified version of


recurrent neural networks, which makes it easier to remember past data
in memory. The vanishing gradient problem of RNN is resolved here.
LSTM is well-suited to classify, process and predict time series given
time lags of unknown duration. It trains the model by using back-
propagation. In an LSTM network, three gates are present:

1. Input gate — discover which value from input should be used to modify
the memory. Sigmoid function decides which values to let through 0,1. and
tanh function gives weightage to the values which are passed deciding
their level of importance ranging from-1to 1.

2. Forget gate — discover what details to be discarded from the block. It is


decided bythe sigmoid function. it looks at the previous state(ht-1) and the
content
3. input(Xt) and outputs a number between 0(omit this)and 1(keep this)for
each number in the cell state.

3. Output gate — the input and the memory of the block is used to
decide the output.

Sigmoid function decides which values to let through 0,1. and tanh
function gives weightage to the values which are passed deciding their
level of importance ranging from-1 to 1 and multiplied with output of
Sigmoid.LSTMs were a big step in what we can accomplish with RNNs.
It’s natural to wonder: is there another big step?
A common opinion among researchers is: “Yes! There is a next step and
it’s attention!” The idea is to let every step of an RNN pick information
to look at from some larger collection of information. For example, if
you are using an RNN to create a caption describing an image, it might
pick a part of the image to look at for every word it outputs. In fact,
Xu,et al. (2015) do exactly this – it might be a fun starting point if you
want to explore attention!
CHAPTER – 5

PROJECT ANALYSIS

5.1 STUDY OF THE SYSTEM

Machine learning has found its applications in many interesting fields


over these years. Taming stock market is one of them. I had been
thinking of giving it a shot for quite some time now; mostly to solidify
my working knowledge of LSTMs.

Here are the things we will look at :

1. Reading and analyzing data. (Pandas)

2. Normalizing the data. (SkLearn)

3. Converting data to time-series and supervised learning problem.

4. Creating model (Keras)

5. Fine tuning the model(in the next article) 6. Training,


predicting and visualizing the result.

7. Tips & tools.

5.2 INPUT AND OUTPUT

Reading and Analyzing the Data

I will be using the historical stock price data for GE for this post. You
can find the data in my kaggle site here. I don’t remember the source of
data since I had downloaded it long back. We can read the data into
frame as shown below :

df_ge = pd.read_csv(os.path.join(INPUT_PATH, "us.ge.txt"),


engine='python') df_ge.tail()
Figure 5.1: Reading the Data

As you can see there are around 14060 items, each representing a day’s stock market attributes
for the company. Lets see how does it look on a plot :

from matplotlib import pyplot as pltplt.figure()


plt.plot(df_ge["Open"]) plt.plot(df_ge["High"])
plt.plot(df_ge["Low"]) plt.plot(df_ge["Close"])
plt.title('GE stock price history') plt.ylabel('Price (USD)')
plt.xlabel('Days') plt.legend(['Open','High','Low','Close'],
loc='upper left') plt.show()

26
27
Figure 5.2: Analyzing the Data
It seems the prices — Open, Close, Low, High — don’t vary too much from
each other except for occasional slight drops in Low price.

Now let’s check out the plot for volume :

plt.figure() plt.plot(df_ge["Volume"])
plt.title('GE stock volume history')
plt.ylabel('Volume')
plt.xlabel('Days') plt.show()

There is quite a surge in the number of transactions around 12000th day on the timeline,
which happens to coincide with the sudden drop of stock price. May be we can go back to
that particular date and dig up old news articles to find what caused it.

28
Now let’s see if we have any null/Nan values to worry about. As it turns out we don’t have any
null values. Great!
print("checking if any null values are present\n", df_ge.isna().sum())

Figure 5.3: Finding Null Values

Normalizing the data

The data is not normalized and the range for each column varies, especially Volume.
Normalizing data helps the algorithm in converging i.e. to find local/ global minimum
efficiently. I will use MinMaxScaler from Sci-kit Learn. But before that we have to split the
dataset into training and testing datasets. Also I will convert the DataFrame to ndarray in the
process.

29
Converting data to time-series and supervised learning problem

This is quite important and somewhat tricky. This is where the knowledge LSTM is
needed. I would give a brief description of key concepts that are needed here but I
strongly recommend reading Andre karpathy’s blog here,which is considered one of the
best resources on LSTM out there and this. Or you can watch Andrew Ng’s video too
(which by the way mentions Andre’s blog too).

LSTMs consume input in format [ batch_size, time_steps, Features ]; a 3- dimensional array.

Batch Size says how many samples of input do you want your Neural Net to seebefore
updating the weights. So let’s say you have 100 samples (input dataset) and you want to
update weights every time your NN has seen an input. In that case batch size would be 1 and
total number of batches would be 100. Like wise if you wanted your network to update
weights after it has seen all the samples, batch size would be 100 and number of batches
would be 1. As it turns out using very small batch size reduces the speed of training and on
the other hand using too big batch size (like whole dataset) reduces the models ability to
generalize to different data and it also consumes more memory. But it takes fewer steps to
find the minima for your objective function. So you have to try out various values on your
data and find the sweet spot. It’s quite a big topic. We will see how to search these in
somewhat smarter way in the next article.
Time Steps define how many units back in time you want your network to see. For
example if you were working on a character prediction problem where you have a text
corpus to train on and you decide to feed your network 6 characters at a time. Then your time
step is 6. In our case we will be using 60 as time step i.e. we will look into 2 months of data
to predict next days price. More on this later.
Features is the number of attributes used to represent each time step. Consider the
character prediction example above, and assume that you use a one-hot encoded vector of
size 100 to represent each character. Then feature size here is 100.
Now that we have some what cleared up terminologies out of the way, let’s convert our
stock data into a suitable format. Let’s assume, for simplicity, that we chose 3 as time our
time step 30

(we want our network to look back on 3 days of data to predict price on 4th day) then we would
form our dataset like this:

Figure 5.4: Normalizing the Data

Samples 0 to 2 would be our first input and Close price of sample 3 would be its
corresponding output value; both enclosed by green rectangle. Similarly samples 1 to 3
would be our second input and Close price of sample 4 would be output value;
represented by blue rectangle. And so on. So till now we have a matrix of shape (3, 5),
3 being the time step and 5 being the number of features. Now think how many such
input-output pairs are possible in the image above? 4.
Also mix the batch size with this. Let’s assume we choose batch size of 2. Then input-output
pair 1 (green rectangle) and pair 2 (blue rectangle) would constitute batch one. And so on.

‘y_col_index’ is the index of your output column. Now suppose after converting data into
supervised learning format, like shown above, you have 41 samples in your training dataset but

31

your batch size is 20 then you will have to trim your training set to remove the odd samples left
out.

Now using the above functions lets form our train, validation and test datasets

x_t, y_t = build_timeseries(x_train, 3) x_t = trim_dataset(x_t,


BATCH_SIZE) y_t = trim_dataset(y_t, BATCH_SIZE) x_temp,
y_temp = build_timeseries(x_test, 3) x_val, x_test_t =
np.split(trim_dataset(x_temp, BATCH_SIZE),2) y_val, y_test_t =
np.split(trim_dataset(y_temp, BATCH_SIZE),2) Now that our data
is ready we can concentrate on building the model.

5.3 Process Model With Justification:

We will be using LSTM for this task, which is a variation of Recurrent Neural
Network.

Creating LSTM model is as simple as this:

Creating model

We will be using LSTM for this task, which is a variation of Recurrent Neural
Network.
Creating LSTM model is as simple as this:

Now that you have your model compiled and ready to be trained, train it like shown
below. If you are wondering about what values to use for parameters like epochs, batch
size etc., don’t worry we will see how to figure those out in the nextarticle.

Training this model (with fine tuned hyperparameters) gave best error of 3.27e-4 and best
validation error of 3.7e-4. Here is what the Training loss vs Validation loss looked like:
32

Figure 5.5: Training error vs Validation error


This is how the prediction looked with above model
33
Figure 5.5: Prediction vs real data

35
CHAPTER – 6

UML DIAGRAMS
6.1 USE CASE DIAGRAM

36
6.2 SEQUENCE DIAGRAM

37
6.3 DATA FLOW DIAGRAM

38
CHAPTER – 7
TESTING METHODOLOGY
7.1 TESTING:

Testing is the set of activities that can be planned in advance and conducted
systematically. Numbers of testing strategies are proposed. All provide software
developer with a template for testing and all have following characteristics.
Testing begins at component level & works “outward” towards the integration
of the entire computer based system.

Different testing techniques are appropriate at different points in time.

Testing is conducted by the developer of the software & independent test group.

Testing & debugging are different activities, but debugging must be


accommodated in any testing strategy.

7.2 VALIDATION AND VERIFICATION

7.2.1 What is Verification?

The standard definition of Verification goes like this: "Are we building the
product RIGHT?" i.e. Verification is a process that makes it sure that the
software product is developed the right way. The software should confirm to its
predefined specifications, as the product development goes through different
stages, an analysis is done to ensure that all required specifications are met.
Methods and techniques used in the Verification and Validation shall be designed
carefully, the planning of which starts right from the beginning of the
development process. The Verification part of ‘Verification and Validation
Model’ comes before Validation, which incorporates Software inspections,
reviews, audits, walkthroughs, buddy checks etc. in each phase of verification
(every phase of Verification is a phase of the Testing Life Cycle)

During the Verification, the work product (the ready part of the Software being
developed and various documentations) is reviewed/examined personally by one
or more persons in order to find and point out the defects in it. This process helps
in prevention of potential bugs, which may cause in failure of the project.

The activities involved in Verification process are:

Requirement Specification verification

Functional design verification

Internal/system design verification and code verification

Each activity makes it sure that the product is developed right way and every requirement;every
specification, design code etc. is verified!

7.2.2 What is Validation?

Validation is a process of finding out if the product being built is right? I.e.
whatever the software product is being developed; it should do what the user
expects it to do. The software product should functionally do what it is supposed
to, it should satisfy all the functional requirements set by the user. Validation is
done during or at the end of the development process in order to determine
whether the product satisfies specified requirements.

Validation and Verification processes go hand in hand, but visibly Validation


process starts after Verification process ends (after coding of the product ends).
Each Verification activity (such as Requirement Specification Verification,
Functional design Verification etc.) has its corresponding Validation activity

40
(such as Functional Validation/Testing, Code Validation/Testing,
System/Integration Validation etc.).
All types of testing methods are basically carried out during the Validation
process. Test plan, test suits and test cases are developed, which are used during
the various phases of Validation process.

The phases involved in Validation process are:

Code Validation/Testing

Integration Validation/Integration Testing


Functional Validation/Functional Testing

System/User Acceptance Testing/Validation.

41
Figure 7.1: Verification and validation model

7.3 TEST CASE DESIGN:

Test case specification has to be done separately for each unit. Test case
specification gives, for each unit to be tested, all test cases, inputs to be used in
the test cases, conditions being tested by the test case, and outputs expected for
those test cases.

Test case specification is a major activity in the testing process. Careful selection
of test cases that satisfy the criterion and approach specified is essential for
proper testing. Test case specification document gives plan for testing that
evaluates quality of test case.

With the specification of test cases, the next step in the testing process is to
execute them. The steps to be performed to execute the test cases are specified in
a test procedure specification which gives procedure for setting test environment
and describes the methods and formats for reporting the results of testing. Test
log, test summary report, and error report are some common outputs of test case
execution.

TEST CASES :

The input dataset contains last five years data which is used for prediction of
future stock markets by identifying any relevant inferences or patterns. Our
model when fed with all of the input datasets and then automated, resulted in a
overall accuracy of 84.67%.

42
Fig 7.1 Graph of actual v/s predicted stock prediction values

7.3.1 Recovery Testing:

Recovery testing is a system test that enforces the software to fail in a variety of
ways and verifies that recovery is properly performed. If the recovery is
automatic, re-initialization, check pointing mechanism and data recovery and
restart are each evaluated for correctness. If recovery requires human
intervention, the mean time to repair is evaluated to determine whether it is
within acceptable limits.

7.3.2 Security Testing:

Security testing attempts to verify that protection mechanisms built into a system will infract
protect it from improper penetration.

43
7.3.3 Stress Testing:

Stress tests are designed to handle programs with abnormal situations. Stress testing
executes a system in a manner that demands resources in abnormal quantity,
frequency or volume.

44
CHAPTER -8

OUTPUTS /

SCREENSHOTS

45
CONCLUSION

Accuracy of our model of stock prediction depends on various


factors.Like no of dates upto which the stock market is fed data of,
accuracy of data, scaling factor etc.
For now, the model performs well with an accuracy of 85%. It's useful for the
illogical and unpredictable stock market where people risk investing money.
Hence, it is a very applicative program for today's generation.

The project is made for easing up people's decisions for stock markets.
Some people are skeptical even about investing in it. To help them with the
prediction process and to make smart decisions about investing in stock
market, this project is very helpful.

As our data set grows with more and more passing days with more and more
daily data update of stocks, our model becomes more robust. And hence, it
can be considered as reliable when it comes to investing in stock market.
FUTURE SCOPE

This is a very applicative program for future as the interest of people in stock market is
never going to end anytime soon. Hence, need for an effective stock prediction system is the
foremost requirement to help people decide which shares to sell, which to buy and when.
Although it is very promising on the horizons, few changes can be made :

1. Potential improvement can be made to our data collection and analysis


method
2. Future research can be done with possible improvements such as refined data
and more accurate algorithm.
3. Dataset varying from a huge range of dates.
c

REFERENCES

1. RESEARCH PAPERS

José Manuel Azevedo, Rui Almeida, Pedro Almeida, Using


Data Mining with Time Series Data in Short-Term Stocks
Prediction: A Literature Review, International Journal of
Intelligence Science, 2012, 2, 176-180

Hinton, Geoffrey E., Simon Osindero, Yee-Whye Teh, A fast learning


algorithm for deep belief nets, Neural computation 18.7 (2006):
15271554.

Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya


Sutskever, Ruslan Salakhutdinov, Dropout: A Simple Way to
Prevent Neural Networks from Overfitting, Journal of
Machine Learning Research 15
(2014)

2. BOOKS
1.The hundred page machine learning book by Andriy Burkov
2.Introduction to Machine Learning with Python: A Guide for Data Scientists

Book by :-
Andreas C. Müller and Sarah Guido

3.OTHER RESOURCES
1. https://www.geeksforgeeks.org/machine-learning/
2. https://towardsdatascience.com/machine-learning/home

3. https://techbeacon.com/enterprise-it/moving-targets-testing-software-age-machine-learning

4. https://www.geeksforgeeks.org/best-python-libraries-for-machine-learning/

5. https://en.wikipedia.org/wiki/Machine_learnin g

You might also like