Heuristic Definition with Its Roles
This tutorial explains the heuristic definition in data science. A heuristic is an empirical metric or process that aims to provide some useful tool or insight to facilitate a data science method.
Heuristics can be viewed as information in the making, as they provide a variety of insights directly based on your data that facilitate the extraction of useful information from the data at hand. This information can be used as is or be incorporated into the models you build.
Problems that are complex or peculiar in a way, making conventional approaches to solving them impractical, usually lend themselves to heuristics. AI systems greatly depend on heuristics in order to function and yield a performance capable of adding value to a project.
Particularly when it comes to avoiding over-fitting and finding an efficient way to train these systems, heuristics are a great asset.
Heuristics have a variety of applications in data science, such as:
Machine learning – improving models by changing their internal workings, or through a more meaningful measurement of their performance (e.g. custom cost functions)
Data engineering – facilitating the creation/transformation of features through heuristics in a creative way so that the resulting dataset is as information-rich as possible
Feature evaluation – assessing the predictive potential of a feature or a set of features in relation to a target variable
Some key characteristics of a good heuristic are:
Being well-defined – abstract or overly generic heuristics are not helpful in practice
Being scalable – heuristics need to be computationally cheap so that they can be applicable in scale
Being comprehensive and intuitive – easy to understand heuristics are far more useful and applicable in practice
Being versatile – heuristics are better off not being too specialized, and reusable in different problems, even if these problems are all of the same categories
Having as few assumptions as possible – fewer assumptions make the heuristic more widely applicable and free of excessive parameters
Heuristics are worth trying out in a data science project, even if you do not always make use of them in production. The best way to delve into heuristics is to try building your own for the data analytics problems you are tackling.
The Role of Heuristics in Data Science
When it comes to data science, a heuristic takes the form of an empirical metric or function that aims to provide some useful tool or insight, to facilitate a data science method or project.
A heuristic can be the source of additional features or a way to assess the information or value of the data in your models. It is a versatile and invaluable tool in all your data science endeavors.
In this blog, we will examine heuristics including describing the problems that require heuristics, exploring the importance of heuristics in AI systems and their application in various areas of data science, as well as a view of what makes a heuristic good should you wish to create your own heuristics.
Heuristics as Information in the Making
Heuristics can be thought of like information in the making, even if this information is not so well hidden as that derived from our models. Still, these models often rely on heuristics to a great extent, regardless of if it is not always acknowledged.
This is because heuristics are so closely ingrained in computer science that they are often used without bringing about awareness of them. What’s more, in the scientific world, they tend to be looked down upon, as there is rarely any scientific theory behind them.
That’s not to say that heuristics are pseudo-science; they are just more akin to inventions. Although they comply with the laws of science, they may apply science in novel and creative ways, and may even use principles that are not yet thoroughly understood or even studied for that matter. Therefore, heuristics are scientific in essence, even if they are not always well-researched.
It is good to remember that something that is a heuristic today may be an application of a scientific theory in the future, despite it being a work in progress right now.
More often than not, a heuristic manifests as an algorithm or a metric. As such, it is responsible for performing some sort of processing or transformation of the data it is given.
For example, in the evaluation of a system in the predictive analytics category, it is often the case that heuristics that encapsulate the performance of the system in a single number are used, usually in the [0, 1] interval.
More sophisticated heuristics, such as those used in most AI systems, are not that simple and are comprised of a series of steps, in order to apply the concepts behind them.
Whatever the case, be it for simple performance evaluation or for handling the data inside an AI system, heuristics bring out the information residing in the data in a practical and useful way.
In order for heuristics to be as applicable as possible, they need to be fairly simple and easy to scale. This allows them to be efficient in how they use the computational resources available. This is very important, particularly when dealing with large datasets, as is often the case in data science.
However, this simplicity can limit them, which is why they are often insufficient in tackling a data analytics problem by themselves. This is also why they are information in the making, but not a complete and refined information product.
Problems that Require Heuristics
Though the majority of problems can be tackled with conventional techniques, there are certain problems where heuristics are essential. This may be due to the complexity of a problem, or because of the restrictions involved (e.g. limited computational resources), as well as other factors, which depend on the domain of the problem.
One of the most common problems in data science and computer science, in general, is optimization. Even if there are quite a few deterministic methods for finding the optimum value of a function given certain restrictions, usually the problems we need to tackle in the real world have to do with very complex functions that are multi-dimensional and non-linear.
This makes calculating the best possible solution extremely difficult, if not practically impossible. Nevertheless, since we do not usually care much about finding the absolute best solution to such problems, we often compromise with solutions that are good enough, as long as we can find them quickly.
This prospect is made possible with stochastic optimizers, such as simulated annealing, that rely heavily on heuristics to work.
Problems that involve creativity are particularly tough, making heuristics the only viable alternative. Examples include music composition, artistic drawing, poetry writing, and even the generation of video clips (e.g. movie trailers).
For the systems involved in such challenging tasks, heuristics do much of the heavy-lifting in the background. The alternative would be to figure out a mathematical model that describes these processes, something that is yet to emerge.
Going back to data science problems, most likely the models you deal with have a number of parameters, even if the problem you are trying to solve is something fairly simple, such as regression.
These parameters often need to be fine-tuned at one point in order for the model to be robust enough. This fine-tuning often includes selecting the most powerful features through a technique like Lasso or L2 normalization.
Methods like these that enable this fine-tuning to take place are basically heuristics embedded in the fitness function of the model.
Classification problems also have much to benefit from heuristics. Oftentimes, we are faced with the challenge that the conventional evaluation metrics, such as accuracy rate, fail to measure what we want out of the classifier. Cases like fraud detection and intrusion detection systems are good examples of that.
In these cases, accuracy is completely useless, while F1 can only get us so far. If we want to build a model that is optimal for the problem at hand, we will have to use a custom evaluation system that makes use of a cost function. This function is, in essence, a simple heuristic that makes all of this possible.
Why Heuristics are Essential for an AI System
AI systems continue to thrive due to their seemingly unbounded potential in tackling complex problems and their robust way of utilizing large amounts of data.
However, the middle phases where this data is formulated into useful packs of information involve a lot of complex processes that even the creators of these systems are not fully aware of their details.
In order to have a firm grasp on this, there are some heuristics in place that are high-level enough to be understood by any user of the system, but also low-level enough to be close to the inner workings of the system (e.g. through the function that conveys the signal between two connected nodes in an artificial neural network (ANN), or transfer function).
AI systems rely on heuristics to various extents, depending on the system. All AI systems involve an optimization phase, which is largely heuristics-based (in order for this optimization to be possible in a short enough amount of time).
In that sense, any modern AI system would be infeasible without some heuristic working on the back-end.
Being highly stochastic in nature, these systems would not be able to learn anything at a reasonable level of generalization if it were not for some heuristic in their training algorithms (optimizing the relevant parameters) or in how these systems are applied afterward.
Otherwise, they would run into all kinds of over-fitting issues, jeopardizing their performance and usefulness in general.
However, AI systems also tend to employ an unconventional approach to data analytics, veering away from traditional theory. This enables them to tackle all kinds of datasets without being bound by assumptions related to their distributions, for example.
In order to accomplish this, they resort to relying on heuristics, instead of some model of the data that may or may not hold true. More on that in the blog that follows.
Applications of Heuristics in Data Science
Data science needs heuristics, probably more and more as it evolves into an ever-sophisticated field. The time when we used to tackle structured data stemming from organized data streams is way behind us.
These days, the majority of the data we use is highly disorganized, and it is practically impossible to do anything useful with it without heuristics.
Especially when it comes to complicated problems, heuristics are essential since such problems often require custom-built evaluation metrics in order to find optimal solutions. Let’s look at some of the areas where heuristics can benefit data science.
Heuristics and Machine Learning Processes
Machine learning processes benefit from heuristics a great deal. Be it in the form of evaluation metrics for machine learning models or as components of the models themselves, they can add a lot of value to whatever system you are using.
Because heuristics are more helpful in problems that are highly challenging if your data is fairly clean and tidy and all you care about is the model’s overall performance as captured by F1 or accuracy rate, applying heuristics would be an overkill.
Yet, in the cases when the performance you obtain from your models is insufficient or not relevant to what you want in your project, you have a lot to benefit from involving heuristics in the machine learning process.
Perhaps a simple heuristic like a custom cost function would suffice, or maybe you will need to change the model’s inner workings by using a heuristic there (e.g. in the decision-making part, when dealing with a classification system).
Whatever the case, machine learning models usually have plenty of room for improvement if you are willing to put the time into employing heuristics.
Custom Heuristics and Data Engineering
Data engineering has also much to benefit from heuristics, perhaps more than any other part of the data science pipeline.
This is because this part of the pipeline involves the most tinkering of the data and tends to include a significant amount of out-of-the-box thinking regarding how you can go about improving the morphing of the data at hand into a useful dataset.
What is useful is closely related to what is information-rich, and what better way to accomplish that than by using flexible data structures and processes that involve information-rich data like heuristics?
For example, you can create custom similarity metrics to establish where two features are alike and by how much (remember, features do not have to be in a linear space, where conventional distance metrics make sense), or to establish the best way to make a continuous feature discrete.
By then plugging this heuristic into an optimization system, you can find a good enough discretization of that feature (often referred to as binning), such that the information loss is minimal.
Similarly, you can use heuristics to merge several discrete features together (feature fusion) without having to make use of every possible combination out there.
Finally, it is possible (and not too uncommon) to transform a binary feature into a continuous one if we have a binary target variable. This is made possible using a heuristic based on the distribution matrix depicting the four combinations of 1s and 0s of the feature and the target variable.
Heuristics for Feature Evaluation
Feature evaluation in sets is something that most data scientists are unaware is possible, even if its use can be seen almost universally.
Also, this methodology is an effective way of performing dimensionality reduction without needing to resort to synthetic features (like those obtained by running PCA or some other SVD method, which is expensive computationally).
However, evaluating entire feature sets is only feasible through specialized heuristics designed for this purpose. The alternative is running a model on them, preferably one that you can interpret easily, but this option has the primary drawback that its results are not all that generalizable.
In terms of applied data science, feature evaluation is basically assessing the predictive potential of a set of features. This implies that there is a target variable that is used as a frame reference.
Since the only metrics that are supported by theory and that are lightweight enough to be scalable are correlation coefficient and entropy (as well as variants of it, such as cross-entropy), most of the methods for feature evaluation revolve around tackling features one at a time.
However, using certain, more modern heuristics (such as one of the Indexes of Discernibility metrics), it is possible to handle whole sets of features at once.
Other Applications of Heuristics
There are also several other applications of heuristics, too many and too application-specific to be included in this blog. What’s more, you can always come up with some of your own, depending on how creative or how much you are in need of them!
One application that is worth mentioning is the building of an ensemble, a bundle of predictive analytics models that promises to provide a better performance than any one of its components alone.
Many ensemble methods utilize heuristics in some way, particularly in cases when we are dealing with diverse predictive analytics systems as the members of the ensemble.
This is because things are not always clear-cut when it comes to combining classifiers or regressors, and even when they are (e.g. in the case of all of the components of the ensemble having a confidence metric accompanying the prediction).
This may not be sufficient for combining the outputs of the ensemble members, mainly because the value of these confidence metrics often vary greatly among different systems.
So, if you find the use of random forests appealing, but are not satisfied with conventional ensemble options, give heuristics a try to see if you can work out a way to combine different predictive analytics systems in an ensemble setting.
Anatomy of a Good Heuristic
Good heuristics are like good data science educational materials: few and hard to find. As a result, it takes some work to implement a heuristic that will truly add value to your pipeline. Specifically, whether you are looking for a good heuristic or you are planning to develop your own heuristic, it needs to be able to tick a series of boxes.
First of all, the heuristic needs to be well-defined. Heuristics that are generic are probably going to yield more problems than they solve, as they will most likely require many parameters in order to be useful.
If you have the option to choose a more specific heuristic with fewer parameters, it would be best to go with that option.
There are exceptions to this, of course, such as some fundamentally innovative heuristics, like a new type of average or a new dispersion metric, but most people are not equipped or willing to create such high-level heuristics.
Such an endeavor would require advanced inter-disciplinary know-how coupled with a highly original approach to building new heuristics.
Another important box to tick is scalability. A good heuristic has to be able to scale, which is equivalent to it is computationally inexpensive. Needless to say, heuristics that scale well are very applicable to data science, particularly when tackling big data.
In addition, a good heuristic is comprehensive, and to a great extent, intuitive. This does not mean that using a heuristic is easy, but it definitely doesn’t require you to read a user manual in order to utilize it. Under the hood, a heuristic may be complex to the untrained eye, but it should not require a lot of effort to apply it to your problem or to test its functionality.
Moreover, a good heuristic tends to be versatile. This does not mean that it is going to be like a Swiss Army Knife, but it can still be applicable to a variety of different problems or datasets, sometimes in the same category (e.g. classification-related). No matter, if you are going to build a heuristic, you do not want it to apply only to one or two problems.
The final box to tick has to do with the heuristic being as assumption-free as possible. If it comes with a large number of assumptions, it is bound to have unnecessary complexities that are probably going to make it problematic in certain situations (probably ones that you cannot foresee at first).
Also, an assumption-free style is more closely related to the data-driven approach, which constitutes the core philosophy of heuristics. The more assumptions a heuristic has, especially if they are about the distributions of the data it uses, the less useful it is going to have in general.
Some Final Considerations on Heuristics
Heuristics may not always be the way to go for a given problem. However, they may still yield some insight to the data at hand. After all, the data science pipeline is not a linear process, so trying out different things is not only allowed, but expected to some degree.
Therefore, exploring the applicability of a few heuristics in your project is definitely worth trying, regardless of whether the corresponding code makes it to production. After all, many heuristics lend themselves to data exploration only, so not everything you use needs to be deployed on the cloud/cluster afterward.
Also, sometimes the best way to learn something is to try it out like no one is watching. This is particularly applicable when it comes to heuristics.
If this makes sense to you, and you find that it can be a way to express your creativity in a productive manner, go ahead and build a few heuristics of your own.
Who knows? Maybe a couple of them will catch on and make things easier for everyone in the data science field.
And if they don’t make it to the community, you can still benefit from them and gain a better understanding of the lesser-known aspects of information in the making.
The Role of AI in Data Science
Although Artificial Intelligence (AI) has been around for a few decades now, it is only since it has been utilized in data science that it has become mainstream.
Before that, it was an esoteric technology that would be seen in relation to robotics or some highly sophisticated computer system, poised to destroy humanity.
In reality, AI is mainly a set of fairly intelligent algorithms that are useful wherever they apply, as well as in the field of computer science that is involved in their development and application.
Even if there are a few success stories out there that help AI make the news and the marketing campaigns, more often than not, they are not the best resource in data science, since there are other resources that are better and more widely applicable (e.g. some dimensionality reduction methods and the feature engineering techniques).
Plus, when they do make sense in a data science project, they require a lot of fine-tuning. AI is not a panacea, though it can be a useful tool to have in your toolbox, particularly if you find yourself working for a large company with access to lots of decent data.
In this blog, we will take a look at various aspects of AI and how AI relates to data science including the problems AI solves, the different types of AI systems applied in data science, and considerations about AI’s role in data science.
This is not going to be an in-depth treatise on the AI techniques used in data science. Rather it will be more of an overview and a set of guidelines related to AI in data science.
The information provided can serve as a good opportunity to develop a sense of perspective about AI and its relationship to data science.
Problems AI Solves
AI is an important group of technologies. It has managed to offer a holistic perspective in problem-solving since its inception. The idea is that with AI, a computer system will be able to frame the problem it needs to solve and solve it without having anyone hard-code it into a program.
This is why AI programs have always been mostly practical, down-to-earth systems that intend, sometimes successfully, to emulate human reasoning (not just a predetermined set of rules).
This is especially useful if you think about the problems engineers and scientists have faced in the past few decades, problems that are highly complex and practically impossible to solve analytically.
For example, the famous traveling salesman problem (TSP) has been a recurring problem that logistics organizations have been tackling for years.
Even if its framing is quite straight-forward, an exact solution to it is hard to find (nearly impossible) for real-life scenarios, where the number of locations the traveler plans to visit is non-trivial.
Yet, given enough computing resources, it is possible to find an exact (analytical) solution to it, though most people opt for an AI-based one. AI is not the best route out there in this case, but it is close enough to make the solution valuable and also practical.
What good would a solution be if it took the whole day to compute, using a bunch of computers, even if it were the most accurate solution out there? Would such an approach be scalable or cost-effective? In other words, would it be intelligent?
Most AI systems tackle more sophisticated problems, where the option of obtaining an ideal solution is not only impractical but also impossible. In fact, the majority of problems in applied science are nothing but approximations, and that’s perfectly acceptable.
Nowadays, it is usually mathematicians that opt for analytical solutions, and even among this group, some of them are willing to compromise for the purpose of practicality.
Opting for an analytical solution may have its appeal, but there are many cases where it’s just not worth it, especially if there are numeric methods that accomplish a good enough result in a fraction of the time.
AI is more than mathematics though, even if at its core it deals with optimization in one way or another. It is also about connecting the macro-level with the micro-level. This is why it is ideal for solving complex problems that often lack the definition required to tackle them efficiency.
As the interface of AI becomes closer to what we are used to (e.g. everyday language), this is bound to become more obvious, the corresponding AI systems more mainstream.
The amount of data that needs to be crunched in order for this idea to have a shot at becoming a possibility is mind-boggling. This is where data science comes in.
Data science problems that use AI are those that have highly non-linear search spaces or complex relationships among the variables involved. Also, problems, where performance is of paramount importance, tend to lend themselves to AI-based approaches.
Types of AI Systems Used in Data Science
There are several types of AI systems utilized in data science. Most of them fall under one of two categories: deep learning networks and autoencoders.
All of these AI systems are some form of an artificial neural network (ANN), a robust system that is generally assumption-free. There are also AI systems that are not ANNs, and we will briefly take a look at them too.
An ANN is a graph that maps the flow of data as it undergoes certain, usually non-linear, transformations. The nodes of this graph are called neurons, and the function involving the transformation of the data as it goes through these neurons is called the transference function.
The neurons are organized in layers, each of which can represent the inputs of the ANN (the features), a transformation of these features (or meta-features), or the outputs.
In the case of predictive analytics ANNs, the outputs are related to the target variable. Also, the connections among the various neurons are called weights, and their exact values are figured out in the training phase of the system.
ANNs have been proven to be able to approximate any function, though more complex functions require more neurons and usually more layers too. The most widely used ANNs are also the predecessors of deep learning networks, the feedforward kind.
Deep Learning Networks
This is the most popular AI system used in data science, as it covers a series of ANNs designed to tackle a variety of problems. What all of these ANNs have in common is that there are a large number of layers in them, allowing them to build a series of higher-level features and the system to go deeper into the data it is analyzing.
This kind of architecture is not new, but only recently has the computing infrastructure been able to catch up with the computational cost that these systems accrue.
Also, the advent of parallel computing and the low cost of GPUs enabled this AI technology to become more widespread and accessible to data scientists everywhere. The use of this technology in data science is referred to as deep learning (DL).
Deep learning networks come in all sorts, ranging from the basic ones that aim to perform conventional classification and regression tasks to more specialized ones that are designed for specific tasks that are not possible with conventional ANNs.
For example, recurrent neural networks (RNNs) are a useful kind of DL network, focusing on capturing the signal in time-series data. This is done by having connections that go both forward and backward in the network, generating loops in the flow of data through the system.
This architecture allows RNNs to be particularly useful for word prediction and other NLP related applications (e.g. language translation), image processing, and finding appropriate captions for pictures or video clips. However, this does not mean that RNNs cannot be used in other areas not particularly related to dynamic data.
When it comes to analyzing highly complex data consisting of a large number of features, many of which are somewhat correlated, convolutional neural networks (CNN) are one of the best tools to use.
The idea is to combine multi-level analysis with resampling in the same system, thereby optimizing the system’s performance without depending on the sophisticated data engineering that would be essential for this kind of data.
If this sounds convoluted, you can think of a CNN as an AI system that is fed a multi-dimensional array of data at a time, rather than a single matrix, as is usually the case with other ANNs. This allows it to build a series of feature sets based on its inputs, gradually growing in terms of abstraction.
So, for the case of an image (having three distinct channels, one for each primary color), the CNN layers include features corresponding to crude characteristics of the image, such as the dominance of a particular color on one side of the image, or the presence of some linear pattern.
All of these features may look very similar to the human eye. Once these features are analyzed further, we start to differentiate a bit. These more sophisticated features (present in the next layer) correspond to subtler patterns, such as the presence of two or more colors in the image, each having a particular shape.
In the layer that follows, the features will have an even higher level of differentiation, capturing specific shapes and line/color patterns that may resonate with our understanding of the image. These layers are called convolution layers. In the CNN, there are also specialized sets of features that are called pooling layers.
The role of these layers is to reduce the size of the feature representation in the other layers, making the process of abstraction more manageable and efficient.
The most common kind of pooling involves taking the maximum value of a set of neurons from the previous layer; this is called max pooling. CNN's are ideal for image and video processing, as well as NLP applications.
These are a particular kind of ANN that, although akin to DL networks, are focused on dimensionality reduction through a better feature representation. As we saw in the previous section, the inner layers of a DL network correspond to features it creates using the original features.
Also known as meta-features, these can be used either for finding a good enough mapping to the targets, or to original features again. The latter is what autoencoders do, with the innermost layer being the actual result of the process once the system is fully trained.
So why is all of this a big deal? After all, you can perform dimensionality reduction with other methods and not have to worry about fine-tuning parameters to do so. Statistical methods, which have traditionally been the norm for this task, are highly impractical and loaded with assumptions.
For example, the covariance matrix, which is used as the basis of PCA, one of the most popular dimensionality reduction methods, is comprised of all the pairwise covariances of the features in the original set. These covariances are not by any means a reliable metric for establishing the strength of the similarity of the features.
For these to work well, the features need a great deal of engineering beforehand, and even then, the PCA method may not yield the best-reduced feature set possible.
Also, methods like PCA (including ICA and SVD methods) take a lot of time when it comes to large datasets, making them highly impractical for many data science projects.
Autoencoders bypass all these issues, though you may still need to pass the number of meta-features as a parameter, corresponding to the number of neurons in the inner-most layer.
[Note: You can free download the complete Office 365 and Office 2019 com setup Guide.]
Other Types of AI Systems
Apart from these powerful AI systems for data science, there are also some other ones that are less popular. Also, note that although there are many other ANN-based systems, AI methods for data science include other architectures as well.
For example, fuzzy logic systems have been around since the 1970s and were among the first AI frameworks. Also, they are versatile enough to be useful to applications beyond data science.
Even if they are not used much today (mainly because they are not easy to calibrate), they are a viable alternative for certain problems when interpretability is of paramount importance, while there is also reliable information from experts that can be coded into fuzzy logic rules.
Another kind of AI system that is useful, though not as data science specific, is optimization systems, or optimizers. These are algorithms that aim to find the best value of a function (i.e. its maximum or minimum) given a set of conditions. Optimizers are essential as parts of other systems, including most machine learning systems.
However, optimizers are applicable in data engineering processes too, such as feature selection. As we saw in the previous blogs, optimizers rely heavily on heuristics in order to function.
Extreme Learning Machines (ELM’s) are another AI system designed for data science. They may share a similar architecture with ANNs, but their training is completely different. They optimize the weights of only the last layer’s connections with the outputs. This unique approach to data learning makes them extremely fast and simple to work with.
Also, given enough hidden layers, ELMs perform exceptionally in terms of accuracy, making them a viable alternative to other high-end data science systems. Unfortunately, ELMs are not as popular as they could be, since not that many people know about them.
AI Systems Using Data Science
Beyond these AI systems, there are other ones too that do not contribute to data science directly but make use of it instead.
These are more like applications of AI, which are equally important to the systems that facilitate data science processes.
As these applications gain more ground, it could be that your work as a data scientist is geared toward them, with data science being a tool in their pipeline. This depicts its variety of applications and general usefulness in the AI domain.
Computer vision is the field of computer science that involves the perception of visual stimuli by computer systems, especially robots.
This is done by analyzing the data from visual sensors using AI systems, performing some pattern recognition on them and passing that information to a computer in order to facilitate other tasks (e.g. movement in the case of a robot).
One of the greatest challenges of computer vision is being able to do all that in real time. Analyzing an image is not hard if you are familiar with image processing methods, but performing such an analysis in a fraction of a second is a different story. This is why practical computer vision had been infeasible before AI took off in data science.
Although computer vision focuses primarily on robotics, it has many other applications. For example, it can be used in CCTV systems, drones, and most interestingly, self-driving cars. Also, it would not be far-fetched to one day see such systems making an appearance in phone cameras.
This way, augmented reality add-ons can evolve to something beyond just a novelty, and be able to offer very practical benefits, thanks to computer vision. Since the development of RNNs and other AI systems, computer vision has become highly practical and is bound to continue being a powerful application of AI for many years to come.
Chatbots are all the rage when it comes to AI applications, especially among those who use them as personal assistants (e.g. Amazon Echo).
Even though a voice-operated system may seem different than a conventional chatbot, which only understands the text, they are in essence the same technology under the hood.
A chatbot is an AI system that can communicate with its user using natural language (usually English) and carry out basic tasks.
Chatbots are particularly useful in information retrieval and administrative tasks. However, they can also do more complex things, such as place an order for you (e.g. in the case of Alexa, the Amazon virtual assistant chatbot).
Also, chatbots are able to ask their own questions, whenever they find that the user’s input is noisy or easy to misinterpret.
Chatbots are made possible by a number of systems. First of all, they have an NLP system in place that analyzes the user’s text. This way it is able to understand key objects.
In this pipeline, there is also what is called an intent identifier, which aims to figure out what the intention of the user is when interacting with the chatbot.
Based on the results of this, the chatbot can then carry out the task that seems more relevant, or provide a response about its inability to carry out the task. If it is programmed accordingly, it can even make small talk, though its responses are limited.
After the chatbot carries out the task, it provides the user with a confirmation and usually prompts for additional inputs by the user. Some random delays can happen in the conversation in order to make it appear more realistic, as the chatbot learns to pick up new words (if it is sophisticated enough).
The fact that a chatbot’s whole operation is feasible in real time is something remarkable and made possible by incorporating data science into how it analyzes the inputs it receives.
Synthesizing an answer based on the results it wants to convey is fairly easy (often relying on a template), but figuring out the intent and the objects involved may not be so straight-forward, considering how many different users may interact with the chatbot.
Also, in the case of a voice-operated chatbot, an additional layer exists in the pipeline, involving the analysis of the user’s voice and the transcription of text corresponding to it.
Artificial creativity is an umbrella of various applications of AI that have to do with the creation of works of art or the solution of highly complex problems, such as the design of car parts and the better use of resources in a data center.
Artificial creativity is not something new, though it has only recently managed to achieve such levels that it is virtually indistinguishable from human creativity. In some cases (e.g. the tackling of complex problems), it performs even better than the creativity of domain experts (humans).
An example of artificial creativity in the domain of painting is the idea of using a DL network trained with various images from the works of a famous artist, and then using another image in conjunction with this network so that parts of the image are changed to make it similar to the images of the network it is trained on.
This creates a new image that is similar to both but emulates the artistic style of the training set with excellence as if the new image was created using the same technique.
RNNs are great for artificial creativity, especially when the domain is text. Although the result, in this case, may not be as easy to appreciate as in most cases, it is definitely interesting.
At the very least, it can help people better comprehend the system’s functionality, as it is often perceived as a black box (just like any other ANN-based system).
Other AI Systems Using Data Science
Beyond these applications of AI that make use of data science, there are several more. First of all, we have navigation systems. These we may have come to take for granted, but they are in reality AI systems based on geolocation data and a set of heuristics.
Some people think of them as simple optimizers of a path in a graph, but these days they are more sophisticated than that. Many navigation systems take into account other factors, such as traffic, road blockages, and even user preferences (such as avoiding certain roads).
The optimization may be on the total time or the distance, while they often provide an estimate of the fuel consumption in the case of a motor vehicle the user predefines.
Also, doing all the essential calculations in real-time is a challenge of its own, which these systems tackle gracefully. What’s more, many of them can operate offline, which is still more impressive, as the resources available on a mobile device are significantly limited compared to those on the cloud.
Another AI application related to navigation systems is voice synthesizers; the latter is a common component of the former. Yet voice synthesizers have grown beyond the requirements of a navigation system.
They are used in other frameworks as well, such as ebooks readers. To synthesize voice accurately and without a robotic feel to it is a challenge that has been made possible through sophisticated analysis of audio data and the reproduction of it using DL networks.
Automatic translation systems are another kind of AI application based on data science, particularly NLP. However, it is not as simple as looking up words in a dictionary and replacing them. No matter how many rules are used in this approach, the result is bound to be mechanical, not “feeling right” to the end user.
However, modern translation systems make use of sophisticated methods that look at the sentence as a whole before attempting to translate it.
Also, they try to understand what is going on and take into account translations of similar text by human translators. As a result, the translated text is not only accurate but more comprehensive, even if it is not always as good as that of a professional translator.
Some Final Considerations on AI
AI systems have great potential, especially when used in tandem with data science processes. However, they, just like data science in its first years, is over-ridden by a lot of hype, making it difficult to discern fact from fiction.
It is easy to succumb to the excessive optimism about these technologies and adopt the idea that AI is a panacea that will solve all of our problems, data science related or otherwise. Some people have even built a faith system around Artificial Intelligence.
As data scientists, we need to see things for what they are instead of getting lost in other people’s interpretations. AI is a great field, and its systems are very useful.
However, they are just algorithms and computer systems built on these algorithms. They may be linked to various devices and make their abilities easy to sense, but this does not change the fact that they are just another technology.
Maybe one day, if everything evolves smoothly and we take enough careful steps towards that direction, we can have something that more closely resembles human thinking and reasoning in AI.
Let us not confuse this possibility with the certainty of what we observe. The latter we can measure and reason with, while the former we can only speculate about.
So, let’s make the most that we can with AI systems, whenever they apply, without getting carried away. Taking the human factor out of the equation may not only be difficult but also dangerous, especially when it comes to liability matters. More on that in the blog that follows.
AI is a field of computer science dealing with the emulation of human intelligence using computer systems and its applications in a variety of domains, as well as in data science.
AI is important, particularly in data science, as it allows for the tackling of more complex problems, some of which cannot be solved through conventional approaches.
The problems that are most relevant to AI technologies are those that have one or more of the following characteristics: highly non-linear search spaces, complex relationships among their variables, and performance is a key factor.
Artificial Neural Networks (ANNs) are a key system category for many AI systems used in data science.
There are several types of AI systems focusing on data science, grouped into the following categories:
Deep learning networks
These are sophisticated ANNs, having multiple layers, and being able to provide more robust performance for a variety of tasks. This category of AI systems includes Recurrent Neural Networks (RNNs) and Convolutional Neural Networks (CNN), among others.
Autoencoders – Similar to DL networks, this AI system is ideal for dimensionality reduction and able to handle large datasets too
Other – This includes Fuzzy Logic based systems, optimizers, Extreme Learning Machines, and more
There are various AI systems employing data science on the back-end, such as:
Computer vision – This kind of AI system involves the perception of visual data by computer systems, especially robots
Chatbots – These are useful AI systems that interact with humans in natural language
Artificial creativity – This is not so much an AI system, but an application of AI related to the use of sophisticated AI systems for the creation of artistic works or for solving highly complex problems.
Other – There are also other AI systems employing data science, such as navigation systems, voice synthesizers, automatic translation systems
AI systems are a great resource, but they are not a panacea. It is good to be mindful about their usefulness without getting too overzealous about AI and its potential.
Data Science Ethics
We saw in the previous section that AI can facilitate the data science process by a great deal of automating. However, even if some parts of the pipeline become automated, certain aspects of data science will remain untouched.
They cannot be fully automated due to their non-mechanical nature. Ethics is one part of the process that is currently beyond automation.
In this blog, we will examine various aspects of data science ethics, such as why it is important, the role of confidentiality (mainly privacy, data anonymization, and data security), as well as licensing matters.
Using ethics in our practices elevate the role of the data scientist and enables us to offer something more than interesting insights and pretty products.
The Importance of Ethics in Data Science
Ethics is not something that is just nice to have, as some people think, especially those in the technical professions.
In fact, it can be more significant than the actual analytics work that we are requested to undertake, especially when it comes to matters of privacy, security, and other potential liabilities that often outweigh the potential benefit from harvesting the data at hand.
One of the key aspects of ethics is that it enables constructive and mutually beneficial relationships to come about in every organization. In addition, data science can become dangerous without some ethical foundation behind it. What’s worse, in some cases it does.
This is especially true when there is sensitive data involved, such as financial, medical, or other kinds of personal data. Ethics is like a fail-safe, keeping data science in check when it comes to these kinds of situations.
These days, anyone can take a course in data science, read a blog or two, watch a few videos, play around with a few datasets, and get the basics down of the data science craft.
Although this is great, it does not make someone a data science professional. However, with ethics, all this skill can be put to good use, making the difference between a professional data scientist and one who just possesses the relevant know-how.
Confidentiality means keeping information accessible only to the people that really need to know it. Although this is often associated with encryption, a process for turning comprehensible information into gibberish in order to keep the information inaccessible, confidentiality involves more than just that.
In the world of digital information, confidentiality is a very valuable asset, which unfortunately does not get the attention it needs in the context of data science.
As data scientists, we need to take an ethical approach to confidentiality much the same as a doctor or a lawyer, especially when dealing with sensitive data. Doing otherwise is without doubt unethical.
The parts of confidentiality that are most relevant to the data science field are privacy, data anonymization, and data security. In this section, we will look at each one of these concepts as they correspond to data science, and learn about how we can take them into account so that our work remains ethical.
Protecting data from outsiders involves many different processes. One of the most important is privacy. Privacy is key in data science, especially in projects where sensitive data is involved, since it can easily “break” an organization.
Even companies that have a good reputation and have gained their clients’ trust can lose everything if there is a privacy issue in their data.
Take for example the case of Yahoo. Management blunders aside, Yahoo’s data privacy was severely compromised, which led to the loss of trust and respect from clients and society at large.
Data exposed included names, email addresses, phone numbers, hashed passwords, and more, for over 500 million user accounts.
Ensuring privacy in the data handled in a data science project should always be kept in mind. If the data is being processed inside a company, this should not be an issue, as there are usually specialized professionals ensuring that everything inside the office space is private and secure.
In the cases when you wish to work from home or have to be on the road for a business trip, the best and most secure option would be to use a virtual private network (VPN) or a TCP tunneling technique for connecting to the servers where the data is.
This is due to the fact that all sensitive data tends to be stored on private servers. When outside of the private servers, its privacy of the data therein could be compromised.
The worst part of all this is that if this happens, you will probably not be aware of it when it happens. Unlike movies, hackers in the real world do not leave witty messages on the computers they gain access to, even though some of the more amateur ones may accidentally leave some kind of trail.
Whatever the case, it would be best to make it as hard as possible for them to access your data. If it takes too much effort to compromise your data’s privacy, they will probably move on to their next target.
One thing to keep in mind as far as privacy is concerned is that you ought to think of the worst-case-scenario in advance. This can be a great motivator and guide for the lengths you will need to go to in order to ensure that all data you use remains private throughout the duration of your project.
Also, this can help you anticipate the vulnerabilities of your process and ensure that no private data is compromised.
Finally, it is important to remember that it is not just data that needs to be kept private, but metadata (data about the data) too.
Also, someone’s privacy can be compromised not only with a single piece of data (e.g. their social security number), but also with a combination of things, such as a medical condition, a location, and their demographical makeup.
Good confidentiality also means making sure your data is anonymous. In other words, all personally identified information (aka PII) needs to be removed or hidden so that it is not possible for anyone to find the people behind the data points analyzed.
Data anonymization not only helps mitigate the risk of the data being abused by third parties but also removes any temptation you may have to abuse it yourself.
Data anonymization makes data useless to people who would gain access to it when it comes to exploiting the people behind it. This way, the data is useful only for your data analytics projects, through the patterns it has as a whole. Each data point on its own is practically useless.
This kind of confidentiality is essential in the finance industry, where payment data is common. However, even if you are working for a company that deals in online transactions and your projects involve credit card data, you have to pay attention to data anonymization.
If you have to use the variables containing sensitive information in your models, you can try mapping a hashing value to them. This way, the uniqueness of their values will be maintained, and the actual hashes will be meaningless to everyone accessing them.
You can think of hashing as a transformation that is easy to do in one direction but extremely time-consuming, if not impossible, to reverse. Reversing a hash is equivalent to breaking an encryption code.
Since you do not want to take any risks when anonymizing these variables, it is a good practice to apply some “salt” in the hashing process, to ensure that it is even harder to break.
The salt is usually a few random characters added to every data point, and it ensures a much stronger level of anonymization.
Similar to the privacy aspect of confidentiality, when dealing with data anonymization, you ought to consider the worst thing that could happen if the data you anonymize is leaked.
This way you will have an accurate estimate of how much time you should dedicate to the whole process and ensure that you take the right steps to keep all sensitive data anonymous.
Data security is another part of confidentiality, and it is probably the one most widely used, even outside the data science field.
If you have bought something on an online store, or have accessed your bank account through the web or an app, you have used a form of data security, even if you were unaware of it. Without data security, all online transfers of information would be extremely risky and inviable.
The main methods that are used when it comes to native security are encryption and steganography. The first has to do with turning the data into gibberish, as we mentioned previously, while the latter is all about hiding it in plain sight by inserting it into some usually large data file, such as an image, an audio clip, or even a video.
You can use both of these methods in conjunction for extra security (i.e. encrypt the data and then apply steganography to it).
When it comes to security beyond your computer’s hard drive, you have to take additional precautions. This is because in most cases your computer can be accessed through the Internet if certain ports are left open.
Keeping ports open can be useful at times (e.g. for software updates), but it is a common liability that is favorable by black-hat hackers.
So, keeping vital ports in your computer closed when you don’t use them is a good way to keep hackers at bay. Usually, a good firewall program can help you manage that easily.
Naturally, it is also important to have security software on your computer and especially a secure operating system (OS). This is particularly important for whatever programs you have set up to run on the cloud (e.g. APIs).
Although certain OSes are more secure than others, how secure your computer depends on how well you secure it, regardless of the OS you have.
Even the most secure OS is vulnerable to hackers if it is not set up properly. For this kind of security, it would be best to consult a network engineer or a white-hat hacker.
Finally, storing important data is something that every data scientist has to deal with on his day-to-day work, so it is important that it is done properly. Whether it is passwords, data, or code, everything needs to be stored in a secure location, preferably in an encrypted format.
Remember that any programming code you produce is part of your organization’s intellectual property, so it should be treated as an asset.
The passwords are best kept in a password database, such as KeePass (KeePassX for Linux systems) or LastPass. Also, all important files are better off backed up in a remote location.
Backing things up is something that needs to take place on a regular basis, which is why many backup programs offer an automation mechanism for this.
If you apply these security pointers, your data is bound to remain safe. In case this seems like overkill, remember that it only takes one security breach to jeopardize a company’s assets and potentially its reputation.
Security matters are not only part of data science ethics, but also of your organization’s integrity.
Let us now examine licensing a bit, a topic that usually doesn’t get any attention in data science.
Even though we often do not pay much attention to copyright when using programs and content we encounter on the web when it comes to personal use, infringement of copyright is a serious issue, especially when the copyrighted material is used commercially.
Therefore, the ethical approach to this matter is to pay close attention whenever handling any material with the © symbol.
Keep in mind that even data can be under copyright if it is proprietary, so using it for a data science project may require a certain kind of licensing. This is why you must be extra careful when scraping data from the web. The data, in that case, maybe there for viewing, but not for using it for other purposes.
When it comes to open-source software, there is no issue with copyright, as it is usually free to use (oftentimes there is a different licensing in place, such as Creative Commons (CC), also known as copyleft). Also, just because something is free now does not mean that it is going to be free in the future.
In addition, if you make an innovation, it is a good idea to check for existing patents to minimize the risk of getting sued by some other inventor. This is particularly important if you plan to use that innovation commercially, which is what patents are for.
Finally, if you make use of images in your projects (e.g. as part of a presentation or a GUI for a data product) make sure that they are under CC license. If no licensing information is available for a given image, always assume that you will need to get permission before using it.
Even if the owner of the graphic has no issue with you using it, the ethical way to approach it is to ask for permission and document their response.
Other Ethical Matters
Beyond these basic aspects of data science ethics, there are other things that are also important.
These are not specific to data science, as they have to do with professional ethics in general. For example, being able to meet deadlines is an important ethical matter, especially when dealing with time-sensitive projects, as is often the case in data science.
Also, making sure that everything is documented and passed on to other members of the team is essential in order to perform data science properly. Maintaining an objective stance regarding experiments is another issue of ethics that is paramount when it comes to testing hypotheses.
After all, the excessive pressure of publishing papers that characterizes academia is non-existent in data science.
Some Final Considerations on Ethics
Ethics is often confused with morality, and although related, they are not the same. For starters, morality is internal and relates to a set of principles or values as well as a sense of right and wrong, while ethics is external and has to do with a set of behaviors and attitudes.
Also, even if morality may take many years to develop, ethics is always within reach. This is because ethics is external, which even though it often stems from morality, it can exist independently.
Beyond the duality of ethics and morality, there are several other things related to ethics that are worth mentioning. For example, ethics is a matter of personal priorities.
As such, it may not be asked of you directly or checked afterward. However, it is still expected of you, especially if you are in a responsible position in an organization, or you are branding yourself as a stand-alone data science consultant.
General Trends in Data Science
Even though data science is a chaotic system and the many changes it experiences over time are next to impossible to predict, there are some general patterns, or trends, that appear to emerge.
By learning about the trends in our field, you will be more equipped to prepare yourself and adapt effectively as data science evolves.
The Role of AI in the Years to Come
Apart from the hype about AI, the fact is that AI has made an entrance in data science, and it is here to stay.
This does not mean that everything in the future will be AI-based, but it is likely that AI methods, like deep learning networks, will become more and more popular.
It is possible that some conventional methods will still be around due to their simplicity or interpretability (e.g. decision trees), but they will probably not be the go-to methods in production.
Keep in mind that AI is an evolving field as well, so the methods that are popular today in data science may not necessarily be popular in the future. New ANN types and configurations are constantly being developed, while ANN ensembles have been shown to be effective as well.
Always keep an open mind about AI and the different ways it applies to data science. If you have the researcher mindset and have the patience for it, it may be worth it to do a post-grad program in AI.
It may come as a surprise to many people that big data is getting more quantitative since the majority of it is comprised of text and other kinds of unstructured data, that’s not harnessed yet, often referred to as dark data.
However, as the Internet of Things (IoT) becomes more widespread, sensor data becomes increasingly available. Although much of it is not directly usable, it is quantitative and as such, capable of being processed extensively with various techniques (such as statistics).
In addition, most of the AI systems out there work with mainly quantitative data (even discrete data needs to be converted to a series of binary variables in order to be used).
Therefore, lots of data acquisition processes tend to focus on this kind of data to populate the databases they are linked to, making this kind of data more abundant.
As for the growth of big data, this is not a surprise, considering that the various processes that generate data, whether from the environment (through sensors) or via our online activities (through web services), grow exponentially.
Also, storage is becoming cheaper and cheaper, so collecting this data is more cost-effective than ever before. The fact that there are many systems in place that can analyze that data make it a valuable resource worth collecting.
New Programming Paradigms
Although Object-Oriented Programming (OOP) is the dominant programming paradigm at the moment, this is bound to change in the years to come.
Already some robust functional languages have made their appearance in the field, and it is likely that languages of that paradigm are not going away any time soon. It is possible that other programming paradigms will arise as well.
It would not be far-fetched to see graphical programming having a more pronounced appearance in data science, much like the one featured in the Azure ML ecosystem.
Regardless, OOP will not be going away completely, but those too attached to it may have a hard time adapting to what is to come. This is why I strongly recommend looking into alternative languages to the OOP ones, as well as bridge packages (i.e. packages linking scripts of one language to another).
In addition, if you are good at the logic behind programming and have the patience to go through its documentation, any changes in the programming aspect of data science shouldn’t be a problem.
After all, most new languages are made to be closer to the user and are accompanied by communities of users, making them more accessible than ever before.
As long as you take the time to practice them and go through the code on particular problems, the new programming paradigms should be an interesting endeavor rather than something intimidating or tedious.
The Rise of Hadoop Alternatives
Even though Hadoop has been around for some time, there are other alternatives in the big data arena. Ecosystems like Microsoft’s Azure ML, IBM’s Infosphere, and Amazon’s cloud services, have made a dent in Hadoop’s dominance, and this trend doesn’t show signs of slowing down.
What’s more, there are several other systems nowadays that are on the software layer above Hadoop and which handle all the tasks that the Hadoop programs would.
In other words, Hadoop’s role has diminished to merely offering its file system (HDFS), while all the querying, scheduling, and processing of the data is handled by alternative systems like Spark, Storm, H2O, and Kafka.
Despite its evolution, Hadoop is getting left behind as an all-in-one solution, even if it may still remain relevant in the years to come as a storage platform.
Beyond the aforementioned trends, there are several other ones that may be useful for you to know. For example, there are several pieces of hardware that are becoming very relevant to data science, as they largely facilitate computationally heavy processes, such as training DL networks.
GPUs, Tensor Processing Units, and other hardware are moving to the forefront of data science technology, changing the landscape of the computer systems where production level data science systems are deployed.
Also, with parallelization becoming more accessible to non-specialists, it is useful to remember that building private computer clusters may be easier than people think, as it is cost-effective to buy a bunch of mini-computers or even tiny-computers (e.g. Arduino) and connect them in a cluster array.
Of course, with cloud computing becoming more affordable and with it being easier to scale, it could be that the clusters on the cloud trend may continue as well.
There are also new deep learning systems, such as Amazon’s MXnet, making certain AI systems more accessible to non-experts. A trend like this is bound to become the norm since automation is already fairly commonplace in a variety of data science processes.
As we saw earlier, AI is here to stay, so new deep learning systems may be very popular in the future, especially ones that incorporate a variety of programming frameworks.
Remaining Relevant in the Field
Remaining relevant in data science is fairly easy once you get into the right mindset and allow your curiosity and creativity to take charge. After all, we are not in the field just because it is a great place to be, but also because we are interested in the science behind it (hopefully!) and care about how it evolves.
Understanding the trends of data science today may help in that as it can enhance our perspective and urge us to take action along these trends.
The Versatilist Data Scientist
There are some people who specialize in one thing, also known as specialists, and there are others who know a bit of everything, though they do not have a particularly noteworthy strength, also known as generalists.
Both of these groups have their role to play in the market, and it is no good or bad between the two. However, there is a group that is better than either one of them, as it combines aspects of both: the versatilists.
A versatilist is a (usually technical) professional who is good at various things and particularly adept at one of them. This enables him to undertake a variety of roles, even if he only excels in one of them.
Therefore, if someone else in his team has trouble with his tasks or is absent for some reason, the versatilist can undertake those tasks and deal with whatever problem comes about.
Also, such a person is great at communicating with others, as there is a lot of common ground between him and his colleagues. This person can be a good leader too, once he gains enough experience in his craft.
Being a versatilist in data science is not easy, as the technologies involved are in constant flux. Yet, being a versatilist it is a guarantee for remaining relevant.
Otherwise, you are subject to the demands of the market and other people’s limited understanding of the field when it comes to recruiting.
Also, being a versatilist in data science allows you to have a better understanding of the bigger picture and liaise with all sorts of professionals, within and outside the data science spectrum.
Data Science Research
If you are so inclined (especially if you already have a Ph.D.), you may want to apply your research skills to data science. It might be easier than you think, considering that in most parts of data science, the methods used are fairly simple (especially the statistical models).
Still, in the one area where some truly sophisticated models exist (AI), there is plenty of room for innovation.
If you feel that your creativity is on par with your technical expertise, you may want to explore new methods of data modeling and perhaps data engineering too. At the very least, you will become more intimately familiar with the algorithms of data analytics and the essence of data science, namely the signal and the noise in the data.
If you find that your research is worthwhile, even if it is not groundbreaking, you can share it with the rest of the community as a package (Julia is always in need for such packages and it is an easy language to prototype in).
Alternatively, you can write a white paper on it (to share with a selected few) and explore ways to commercialize it.
Who knows? Maybe you can get a start-up going based on your work. At the very least, you will get more exposure to the dynamics of the field itself and gain a better understanding of the trends and how the field evolves.
The Need to Educate Oneself Continuously
No matter how extensive and thorough your education in data science is, there is always a need to continue to educate yourself if you want to remain relevant. This is easier than people think, since once you have the basics down and have assimilated the core concepts through practice and correcting mistakes.
Perhaps a MOOC would be sufficient for some people, while scientific articles would be sufficient for others. In any case, you must not remain complacent, since the field is unforgiving to those who think they have mastered it.
Education in the field can come in various forms that go beyond the more formal channels (MOOCs and other courses). Although is focused on a specific medium for learning can be beneficial, it is often more practical to combine several mediums.
Collaborative projects are essential when it comes to remaining relevant in data science. This is not just because they can help you expand your expertise and perspective, something invaluable toward the beginning of your career, but they can also help you challenge yourself and discover new approaches to solving data science problems.
When you are on your own, you may come up with some good ideas, but with no one to challenge them or offer alternatives, there is a danger of becoming somewhat complacent or self-assured, two challenging obstacles in any data scientist’s professional development.
Collaborative projects may be commonplace when working for an organization, but sometimes it is necessary to go beyond that. That’s what data science competitions and offshore projects are about.
Although many of these competitions offer a skewed view of data science, the challenges, and benefits of working with other people remain. This is accentuated when there is no manager in place and all sense of order has to come from the team itself.
These kinds of working endeavors are particularly useful when the team is not close physically. Co-working is becoming more and more an online process rather than an in-person one, with collaborative systems like Slack and Github becoming more commonplace than ever.
After all, most data science roles do not require someone to be in a particular location all the time in order to accomplish their tasks.
Doing data science remotely is not always an easy task, but if the appropriate systems are in place (e.g. VPNs and a cloud infrastructure), it is not only possible but preferable.
Collaborative projects can also expose you to data that you may not encounter in your everyday work. This data may require a special approach that you are not aware of (possibly something new).
If you are serious about your role in these projects, you are bound to learn through this process, as you will be forced to go beyond your comfort zone and expand your know-how.
Mentoring is when someone knowledgeable and adept in a field shares his experience and advice with other people who are newer to the field.
Although mentoring can be a formal endeavor, it can also be circumstantial, depending on the commitment of the people involved. Also, even though it is not compulsory, mentoring is strongly recommended, especially among new people in the field.
Unlike other more formal educational processes, mentoring is based on a one-on-one professional relationship, usually without any money involved between the mentor and the mentee.
For the former, it is a way of giving back to the data science community, while for the latter, it is a way to learn from more established data scientists.
Although mentoring is not a substitute for a data science course, it can offer you substantial information about matters that are not always covered in a course, such as ways to tackle problems that arise and strategic advice for your data science career.
Mentoring requires a great deal of commitment. This is not just to the professional relationship itself, but also to the data science field. It is easy to lose interest or become disheartened, especially if you are new to it, and even more so if you are struggling.
Although a mentor can help you with that, he is not going to fight your battles for you. Much like mentors in other professions, a data science mentor is like a guide rather than a tutor.
Even if it is for a short period of time, mentoring is definitely helpful, especially if you are interested in going deeper into the inner workings of data science. Also, it can be of benefit to you regardless of your level, not just to newcomers.
What’s more, even if you are on the giving end of the mentoring relationship, you still have a lot to learn, especially on continuously improving your communication skills.
If you have the chance to incorporate a mentoring dynamic in your data science life, it is definitely worth your time and can help you remain relevant.
Ethics is a part of the data science profession that cannot be automated and which adds a lot of value to the process, even if it is not usually perceived immediately. Ethics in data science involves the following:
Confidentiality – making sure the data is accessed only by the people who are supposed to access it. It involves privacy, data anonymization, and data security.
Licensing – handling copyright matters and ensuring that no one issued by using external material and data in your projects
Privacy is an essential part of confidentiality related to keeping data accessible only to those who need to access it. This involves not just data but also metadata and anything that can reveal a person’s identity through a piece of data or a combination of things.
Data anonymization is about changing data to ensure that confidentiality is maintained
Data security is a common process that involves keeping data safe from external hazards, such as hackers and unpredictable catastrophes
Ethics is different from morality, although they are interlinked. Morality is an internal matter related to one’s values, while ethics is an external matter, related to one’s attitude and the manifestation of certain moral principles.
Ethics is one of the key differentiators between a professional and an amateur, especially in the data science field.