All posts by Algorithmia

The importance of machine learning data

Banner image: coral background with a light bulb and gears

Machine learning data analysis uses algorithms to continuously improve itself over time, but quality data is necessary for these models to operate efficiently. Today, we will be discussing what machine learning datasets are, the types of data needed for machine learning to be effective, and where engineers can find datasets to use in their own machine learning models. 

What is a dataset in machine learning?

To understand what a dataset is, we must first discuss the components of a dataset. A single row of data is called an instance. Datasets are a collection of instances that all share a common attribute. Machine learning models will generally contain a few different datasets, each used to fulfill various roles in the system.

For machine learning models to understand how to perform various actions, training datasets must first be fed into the machine learning algorithm, followed by validation datasets (or testing datasets) to ensure that the model is interpreting this data accurately.

Once you feed these training and validation sets into the system, subsequent datasets can then be used to sculpt your machine learning model going forward. The more data you provide to the ML system, the faster that model can learn and improve.

What type of data does machine learning need?

Data can come in many forms, but machine learning models rely on four primary data types. These include numerical data, categorical data, time series data, and text data.

machine learning relies on 4 data types: time series, text, categorical, and numerical

Numerical data

Numerical data, or quantitative data, is any form of measurable data such as your height, weight, or the cost of your phone bill. You can determine if a set of data is numerical by attempting to average out the numbers or sort them in ascending or descending order. Exact or whole numbers (ie. 26 students in a class) are considered discrete numbers, while those which fall into a given range (ie. 3.6 percent interest rate) are considered continuous numbers. Numerical data is not tied to any specific point in time, they are simply raw numbers.

Categorical data

Categorical data is sorted by defining characteristics. This can include gender, social class, ethnicity, hometown, the industry you work in, or a variety of other labels. This data type is non-numerical, meaning you are unable to add them together, average them out, or sort them in any chronological order. Categorical data is great for grouping individuals or ideas that share similar attributes, helping your machine learning model streamline its data analysis.

Time series data

Time series data consists of data points that are indexed at specific points in time. More often than not, this data is collected at consistent intervals. This makes it easy to compare data from week to week, month to month, year to year, or according to any other time-based metric you desire. The distinct difference between time series data and numerical data is that time series data has established starting and ending points, while numerical data is simply a collection of numbers that aren’t rooted in particular time periods. 

Text data

Text data is simply words, sentences, or paragraphs that can provide some level of insight to your machine learning models. Since these words can be difficult for models to interpret on their own, they are most often grouped together or analyzed using various methods such as word frequency, text classification, or sentiment analysis.

Where do engineers get datasets for machine learning?

There is an abundance of places you can find machine learning data, but we have compiled five of the most popular ML dataset resources to help get you started:

5 popular data resources list: Google, Microsoft, AWS, UCI, data.gov

Google’s Dataset Search

Google released their Google Dataset Search Engine in September 2018. Use this tool to view datasets across a wide array of topics such as global temperatures, housing market information, or anything else that peaks your interest. Once you enter your search, several applicable datasets will appear on the left side of your screen. Information will be included about each dataset’s date of publication, a description of the data, and a link to the data source.

Microsoft Research Open Data

Microsoft is another technological leader who has created a database of free, curated datasets in the form of Microsoft Research Open Data. These datasets are available to the public and are used to “advance state-of-the-art research in areas such as natural language processing, computer vision, and domain specific sciences.” Download datasets from published research studies or copy them directly to a cloud-based Data Science Virtual Machine.

Amazon datasets

Amazon Web Services (AWS) has grown to be one of the largest on-demand cloud computing platforms in the world. With so much data being stored on Amazon’s servers, a plethora of datasets have been made available to the public through AWS resources. These datasets are compiled into Amazon’s Registry of Open Data on AWS. Looking up datasets is straightforward, with a search function, dataset descriptions, and usage examples provided.

UCI Machine Learning Repository

The University of California, School of Information and Computer Science, provides a large amount of information to the public through its UCI Machine Learning Repository database. This database includes nearly 500 datasets, domain theories, and data generators which are used for “the empirical analysis of machine learning algorithms.” Not only does this make searching easy, but UCI also classifies each dataset by the type of machine learning problem, simplifying the process even further.

Government datasets

The United States Government has released several datasets for public use. These datasets can be used for conducting research, creating data visualizations, developing web/mobile applications, and more. The US Government database can be found at Data.gov and contains information pertaining to industries such as education, ecosystems, agriculture, and public safety, among others. Many countries offer similar databases and most are fairly easy to find.

Algorithmia understands machine learning data

Implementing datasets into machine learning models can seem daunting to some, but Algorithmia’s expertise in the industry helps to make the entire process easier. We host a serverless microservices architecture that allows enterprises to easily deploy and manage machine learning models at scale. See how Algorithmia can help you build better software for your organization in our video demo.

watch a demo of Algorithmia button

Continue learning

How machine learning works

Developing your own machine learning projects

Webinar: 2020 state of enterprise machine learning

UN case study

Which machine learning languages should you learn?

 

ML languages Algorithmia supportsThe increasing demand in artificial intelligence and machine learning specialists has put a spotlight on the skills and knowledge needed to excel in this profession. In particular, many aspiring machine learning engineers want to know which programming languages they should master to be competitive in this career. 

While there really is no “best programming language” for machine learning, there are certainly some that are more appropriate for machine learning tasks than others. The purpose of this blog is to discuss how machine learning engineers choose languages to work with, and to profile a few popular programming languages for machine learning. 

How do you choose a machine learning language?

You can start by looking at the languages current machine learning engineers use. Because this profession is relatively new, language choice is often based on factors like the machine learning task itself and the industry and/or academic background of the engineer. 

The best language for the task

According to a 2017 survey of machine learning developers and data scientists by Developer Economics, many developers select a language based on the type of project that they’re working on. For example, many of those surveyed said they preferred using either R or Python for sentiment analysis tasks. Python is also popular for natural language processing (NLP). Those using machine learning for security and threat detection were more inclined to use C/C++ or Java. 

Although not mentioned in this survey, Scala is the primary language used on the Apache Spark platform. Data engineers and machine learning engineers who are working with Big Data are often proficient in Scala.

How background plays a role

Machine learning engineers often bring their academic and previous industry experience into their new roles that they move into. An example of this is R. The R language was created by statisticians in academia for data analysis and modeling. R has been widely adopted in industries like bioinformatics and bioengineering largely because of the academic backgrounds of the engineers and data scientists in those roles. 

As another example, Python is one of the more-commonly taught introductory programming languages in university and online courses. Individuals jumping straight into a career in data science or machine learning will find support with the language’s many machine learning libraries. 

Individuals with a background in Java-based enterprise application development often continue to use this language in machine learning roles. As mentioned previously, Java is the language preferred for creating enterprise applications for network security and anomaly detection.

What are the most widely used machine learning languages?

We’ve already briefly mentioned a few machine learning programming languages, but the question of which are the most widely used is somewhat subject to debate. A 2018 GitHub analysis does provide some insight, however. The site’s survey of all public and some private repositories tagged as “machine-learning,” found the following languages to be in the top 10: 

  1. Python
  2. C++
  3. JavaScript
  4. Java
  5. C#
  6. Julia 
  7. Shell
  8. R
  9. TypeScript 
  10. Scala

We’ll note that because this was an analysis of mostly public repositories, this survey may not give the best insight into which languages are being used in enterprises or large companies. It does, however, provide a good picture into the languages favored by individual developers.

We’re not going to go into detail about all 10 languages on the GitHub list, but we wanted to profile a few that are particularly significant to machine learning and the larger data science community. 

Python

Python’s place at the top of the GitHub list is likely due to its use as an introductory programming language and its large number of machine learning-related libraries including: 

  • Scikit-learn – Includes algorithms for clustering, classification, and regression tasks. 
  • Matplotlib – Plotting and visualization tools
  • Pandas – Data wrangling, manipulation, and analysis
  • TensorFlow – Includes machine learning applications like neural networks (TensorFlow is available as a library for other languages as well)

In addition, compared to other programming languages, Python has simple and easy-to-learn syntax. This makes it ideal for quick development and rapid prototyping.  

R

A critical part of a machine learning engineer’s job is understanding statistical principles enough to apply them to big data. It’s no surprise then that a programming language designed by and for statisticians would play a role in machine learning. 

Popular machine learning and data science packages in R include: 

  • tidyr – Cleans and organizes data into rows and columns
  • dplyr – Data wrangling and management
  • ggplot2 – Data visualization
  • randomForest – Implements random forest classification/regression algorithms 
  • e1071 – Contains functions for clustering and classifier algorithms

Scala

Scala has fewer machine learning libraries than Python or R, but is becoming more widely used by data scientists and machine learning engineers because of its relationship with Apache Spark. Spark is an engine for large-scale data processing written in Scala and provides a native Scala API. Knowledge of Scala is an essential skill not only for machine learning and data science, but individuals interested in data engineering as well.

While not unique to Scala, MLib, Spark’s machine learning library, contains the most frequently used machine learning algorithms and workloads including classification, regression, clustering, and model evaluation. 

JavaScript 

JavaScript may seem like an unlikely programming language to mention, but just like Java or C++ developers incorporating machine learning into desktop applications, JavaScript developers are doing the same for web-based applications. This has gotten easier with the introduction of the TensorFlow.js library. 

With the TensorFlow JavaScript library, not only can developers import models trained elsewhere into the TensorFlow.js format, developers can also develop and train entirely new models entirely in the browser. 

When it comes to the best machine learning language to use, your decision ultimately comes down to your background and the type of work you plan to do. Fortunately, machine learning can be applied to multiple programming languages, so you’ll probably find a fit even if you aren’t familiar with the most common ones. 

Algorithmia is language-flexible

Algorithmia makes deploying machine learning models easy no matter the programming language they’re built in. So whether your team prefers one ML language or works with models in several different languages, the path to production of those models is fast and frictionless on the Algorithmia platform

Time series classification and DevOps stability

Colorful shapes background with text "DevOps engineers don't have to manage the vast infrastructure required for a successful ML implementation.

There is no doubt that more needs to be said about how time series data analysis advances DevOps. Time series classification is a tertiary aspect of time series data itself. By harnessing performance benefits from the powerful capabilities of a machine learning deployment platform, multiple types of objects are processed. The objects are classified using feature extraction to represent the data for our consumption in new ways.

Objects processed for time series classification include images, text, and audio. However, a wider range of applications from financial, security, or even medical diagnoses take full advantage of this form of deep learning AI. We may see DevOps use time series classification to identify the success of a product launch using the site’s social media data.

DevOps can use time series classification to ensure stability

Data scientists are currently engineering ML models designed to do sentiment analysis. By using this AI technology, the objects being processed are categorized by how an end-user may feel about a scenario like a product launch. Looking at the end users’ collaboration on internal and external support forums is one such source of data.

From the time a product or upgrade is released to a production environment, initial data starts flowing from the major social media outlets. Additional log and environmental data are combined that share the same timeline. The culmination of this information is further processed by deep learning AI.

By harnessing the results, DevOps can immediately start making decisions toward additional stability modifications or even a rollback to a prior state. The goal of which is to prevent customer impact as much as possible. This also relieves stress on sometimes already stretched support staff.

Microservices generate mass metrics

With the emergence of microservices, log files and other data are no longer a single stream. They include information from a large number of services hosted on serverless computing platforms. This information is in quantities multitudes greater and more complex than anything DevOps engineers usually encounter.

For example, a simple website API service may normally be hosted on a single IIS server. This service has a number of log files that show traffic patterns as well as problems that the end user may be experiencing. Current DevOps tooling includes software that helps visualize and filter these log files. However, the amount of data coming from a fully scaled implementation is far too great for most current tools in use, today.

By storing this large amount of critical information directly to cloud storage, the data is ready for more intense processing by new advancements in artificial intelligence. Since most companies have made the switch to microservices in the cloud, the application and the storage area for the application’s logs are contained in the same environment.

Algorithmia makes data analysis simple

Algorithmia is working diligently to make the working lives of DevOps engineers and data scientists easier. Our platform provides a means to access the large amounts of big data companies amass from today’s microservices and the Internet of Things. Direct access to data backed by a scalable data science platform means the possibilities for innovation are endless.

Choosing Algorithmia will allow your data scientists to focus on solving big data challenges with a scalable and highly customizable platform. All the while, DevOps engineers no longer have to manage the vast infrastructure required for a successful implementation. Their focus can remain on adding additional security, stability, and automation processes.

When team members are allowed to focus on their specializations instead of wearing multiple hats, the results can only benefit the project on which they are collaborating. Getting real results from information that would normally sit dormant is today’s new standard for the science of data analysis.

Each tier of Algorithmia’s platform includes existing pre-trained models you can build upon to solve complex problems without having to reinvent the wheel. By referencing these, or your own models, a complete solution can be developed that benefits from everything Algorithmia has to offer. 

Continue learning

An introduction to time series forecasting

Time series data analysis advances DevOps

Introduction to Time Series Data Analysis

Supporting our customers during the COVID-19 outbreak

As a Seattle-based company, it feels like we’ve been hearing and talking about the Coronavirus (COVID-19) for a while now. And one thing is very clear, it is not going away quickly and will continue to impact individuals, families, communities, and businesses. 

We are very mindful that this is a time of flux. However, we want to let you know what we’re doing to keep our business operating at the highest level to best serve our customers while keeping our employees safe, healthy, and available to support the business. 

What we’re doing as a company:

Business continuity plan.  We have a BCP in place and are operating at 100 percent support capacity as a result of our plan. If you need anything, we’re all here to help.

Work from home for all employees. We’ve been a remote-friendly company since employee #4, and now we’re all a part of the remote team. Beginning 5 March, we asked all employees to work from home and not come into the office. We are continually assessing this requirement, and right now this is planned through 27 March.

Virtual meetings. We have transitioned to an all-virtual meeting space both internally and externally, and we are accommodating time zones and working hours.

Business travel reductions. Beginning 1 March, we canceled all work-related international travel. For domestic travel, we have asked employees to consider virtual options where possible and use their best judgment.

Hygiene and illness practices. We have always actively implored employees to stay home when they are sick and we encourage them now to take precautions to prevent spreading any illnesses. We’re continuing to remind everyone to practice good hand hygiene and follow local social interaction mandates. 

We want to thank you for your continued business and we hope that you and your community are staying safe. If there is anything we can do to support you and your team during this time, please don’t hesitate to reach out to us.

Thank you,

The Algorithmia Team

What is artificial intelligence engineering?

According to LinkedIn’s 2020 Emerging Jobs Report, the demand for “Artificial Intelligence Specialists” (comprised of a few related roles), has grown 74 percent in the last four years. With more companies than ever (even those outside of the tech) relying on AI tasks as part of their everyday business, demand for practitioners with this skill will only rise. 

In our 2020 state of enterprise machine learning report, we noted that the number of data science–related workers is relatively low but the demand for those types of skills is great and growing exponentially. 

If you’ve been curious about how to become an AI engineer or if you’re interested in shifting your current engineering role into one more focused on AI, you’ve come to the right place. 

By the end of this post you’ll understand: 

  • The role of an AI engineer.
  • The educational requirements to be an AI engineer.
  • The knowledge requirements to be an AI engineer.
  • The AI engineering career landscape. 

What is an AI engineer?

An artificial intelligence engineer is an individual who works with traditional machine learning techniques like natural language processing and neural networks to build models that power AI–based applications. 

The type of applications created by AI engineers include: 

  • Contextual advertising based on sentiment analysis
  • Language translation 
  • Visual identification or perception

Is an AI engineer a data engineer or scientist? 

You may be wondering how the role of an AI engineer differs from that of a data engineer or a data scientist. While all three roles work together within a business, they do differ in several ways: 

  • Data engineers write programs to extract data from sources and transform it so that it can be manipulated and analyzed. They also optimize and maintain data pipelines.  
  • Data scientists build machine learning models meant to support business decision making. They are often looking at the business from a higher strategic point than an AI engineer typically would.

What does it take to be an AI engineer?

AI engineering is a relatively new field, and those who currently hold this title come from a range of backgrounds. The following are some of the traits that many have in common. 

Education

Many AI engineers moved over from previous technical roles and often have undergraduate or graduate degrees in fields that are required for those jobs. These include: 

  • Computer science
  • Statistics
  • Applied mathematics
  • Linguistics 
  • Cognitive science 

Most of the above degrees have some relevance to artificial intelligence and machine learning. 

Technical skills

Two of the most important technical skills for an AI engineer to master are programming and math/statistics. 

  • Programming: Software developers moving into an AI role or developers with a degree in computer science likely already have a grasp on a few programming languages. Two of the most commonly used languages in AI, and specifically machine learning, are Python and R. Any aspiring AI engineer should at least be familiar with these two languages and their most commonly used libraries and packages.
  • Math/statistics: AI engineering is more than just coding. Machine learning models are based on mathematical concepts like statistics and probability. You will also need to have a firm grasp on concepts like statistical significance when you are determining the validity and accuracy of your models.

Soft skills

AI engineers don’t work in a vacuum. So while technical skills will be what you need for modeling, you’ll also need the following soft skills to get your ideas across to the entire organization. 

  • Creativity – AI engineers should always be on the lookout for tasks that humans do inefficiently and machines could do better. You should stay abreast of new AI applications within and outside of your industry and consider if they could be used in your company. In addition, you shouldn’t be afraid to try out-of-the-box ideas. 
  • Business knowledge – It’s important to remember that your role as an AI engineer is meant to provide value to your company. You can’t provide value if you don’t really understand your company’s interest and needs from a strategic and tactical level. 

A cool AI application doesn’t mean much if it isn’t relevant to your company or can’t improve business operations in any way. You’ll need to understand your company’s business model, who the target customers and targets are, and if it has any long- or short-term product plans. 

  • Communication – In the role of an AI engineer, you’ll have the opportunity to work with groups all over your organization, and you’ll need to be able to speak their language. For example, for one project you’ll have to: 
    • Discuss your needs with data engineers so they can deliver the right data sources to you.
    • Explain to finance/operations how the AI application you’re developing will save costs in the long run or bring in more revenue.
    • Work with marketing to develop customer-focused collateral explaining the value of a new application.
  • Prototyping – Your ideas aren’t necessarily going to be perfect on the first attempt. Success will depend on your ability to quickly test and modify models until you find something that works.

Can I turn my current engineering role into an AI role?

Yes. Experienced software developers are well-suited to make the transition into AI engineering. You presumably have the command of more than one programming language and the foundational knowledge to learn another. It’s also likely that you’ve already worked with machine learning models in some capacity possibly by incorporating them into other applications. 

If you are interested in pursuing an AI engineering role within an organization where you already work, your knowledge of the business and knowledge of how the engineering team works will be crucial. 

How much does an artificial intelligence engineer earn in salary?

Artificial intelligence engineers are in high demand, and the salaries that they command reflect that. According to estimates from job sites like Indeed and ZipRecuiter, an AI engineer can make anywhere between $90,000 and $200,000 (and possibly more) depending on their qualifications and experience. 

Another factor that will determine salary is location. According to the LinkedIn Emerging Jobs Report mentioned earlier, most AI engineering jobs are located in the San Francisco Bay area, Los Angeles, Seattle, Boston, and New York City. 

Continue learning

Big data and artificial intelligence: a quick comparison

The best AI programming languages to use

Developing your own machine learning projects