▶Book Description
Julia is a new programming language that offers a unique combination of performance and productivity. Its powerful features, friendly syntax, and speed are attracting a growing number of adopters from Python, R, and Matlab, effectively raising the bar for modern general and scientific computing.
After six years in the making, Julia has reached version 1.0. Now is the perfect time to learn it, due to its large-scale adoption across a wide range of domains, including fintech, biotech, education, and AI.
Beginning with an introduction to the language, Julia Programming Projects goes on to illustrate how to analyze the Iris dataset using DataFrames. You will explore functions and the type system, methods, and multiple dispatch while building a web scraper and a web app. Next, you'll delve into machine learning, where you'll build a books recommender system. You will also see how to apply unsupervised machine learning to perform clustering on the San Francisco business database. After metaprogramming, the final chapters will discuss dates and time, time series analysis, visualization, and forecasting.
We'll close with package development, documenting, testing and benchmarking.
By the end of the book, you will have gained the practical knowledge to build real-world applications in Julia.
▶What You Will Learn
⦁ Leverage Julia's strengths, its top packages, and main IDE options
⦁ Analyze and manipulate datasets using Julia and DataFrames
⦁ Write complex code while building real-life Julia applications
⦁ Develop and run a web app using Julia and the HTTP package
⦁ Build a recommender system using supervised machine learning
⦁ Perform exploratory data analysis
⦁ Apply unsupervised machine learning algorithms
⦁ Perform time series data analysis, visualization, and forecasting
▶Key Features
⦁ Work with powerful open-source libraries for data wrangling, analysis, and visualization
⦁ Develop full-featured, full-stack web applications
⦁ Learn to perform supervised and unsupervised machine learning and time series analysis with Julia
▶Who This Book Is For
Data scientists, statisticians, business analysts, and developers who are interested in learning how to use Julia to crunch numbers, analyze data and build apps will find this book useful. A basic knowledge of programming is assumed.
▶What this book covers
⦁ Chapter 1, Getting Started with Julia Programming, introduces you to the Julia language, covering what it is and what its strengths are. Then, the chapter guides you through setting up a working Julia environment, looking at the various options for running Julia, locally and online. We'll cover installation, REPL, and IDE options, as well as the basics for extending the language through the integrated package manager.
⦁ Chapter 2, Creating Our First Julia App, will show you how to perform data analysis against the Iris dataset with Julia. We take a look at RDatasets, a package that provides access to 700 learning datasets distributed with the R language. We'll load the Iris dataset and we'll manipulate it using standard data analysis functions. We also look more closely at the data by employing common visualization techniques using Gadfly. In the process, we cover strings and regular expressions, numbers, tuples, ranges, and arrays. Finally, we'll see how to persist and (re)load our data with CSV, Feather, and MongoDB.
⦁ Chapter 3, Setting Up the Wiki Game, introduces our first fully featured Julia project, a Wikipedia web crawler disguised as a popular game. In the first iteration, we will build a program that gets a random web page from Wikipedia. Then we'll learn about parsing the HTML response using CSS selectors. We'll use this to introduce key concepts such as functions, pairs, dictionaries, exceptions, and conditional evaluation.
⦁ Chapter 4, Building the Wiki Game Web Crawler, will build upon the foundations set in the previous chapter, and we'll build a Wikipedia web scraper that implements the requirements of the wiki game.
⦁ Chapter 5, Adding a Web UI for the Wiki Game, will see us finish the Wiki Game by adding a web UI. We'll build a simple web app that will allow the player to start a new game, render the Wikipedia articles picked by the game engine, and navigate between linked Wikipedia articles. The UI will also keep track of and display current game progress and determine a session as a win or a loss.
⦁ Chapter 6, Implementing Recommender Systems with Julia, will have you take on a more challenging example project and build a few basic recommender systems. We'll set up a supervised machine learning system powered by Julia and we will develop some simple movie recommenders.
⦁ Chapter 7, Machine Learning for Recommender Systems, will show you how to implement a more powerful recommender system using the Recommender.jl package. We will use a sample dataset to train our system and generate book recommendations as we'll learn about model-based recommenders.
⦁ Chapter 8, Leveraging Unsupervised Learning Techniques, will teach you how to perform unsupervised machine learning, namely clustering, using Julia. We will practice by using the San Francisco businesses registry. We'll use the powerful DataFrames package in combination with Query.jl to slice and dice the dataset, and we'll get more insight using visualizations. In the process, we will learn about metaprogramming and Clustering.jl.
⦁ Chapter 9, Working with Dates, Time, and Time Series, is the first of two chapters about dates, time, and time series. Here we introduce you to the basics of working with dates, time zones, and time series. We'll use the TimeSeries.jl package and Plots.jl to analyze time series data, and we'll learn about the TimeArray data structure.
⦁ Chapter 10, Time Series Forecasting, is where we will perform analysis on the EU unemployment data and forecast unemployment numbers. You will learn how to develop a forecasting model, train it, and generate predictions.
⦁ Chapter 11, Creating Julia Packages, is the final chapter and walks you through developing a fully featured Julia package. We'll discuss more advanced package management features, unit testing, benchmarking, and performance tips, adding and generating documentation for Julia software, and package publishing and registration.