1. 程式人生 > >Extend Machine Learning Tools and Demonstrate Mastery

Extend Machine Learning Tools and Demonstrate Mastery

After you have been using a tool for a while, you will develop a specific way of working with it.

You may even have deep knowledge of the limitations of the tool and how to fix them, or be frustrated by specific features that are missing.

You can augment machine learning tools to formalize the way you use it, fix limitations and add new features. Augmenting tools by creating plug-ins, patches and wrappers and releasing them as open source projects can also demonstrate your mastery in using the tool.

In this post you will discover a quick 5-step process that you can use to augment a machine learning tool and share the results.

Extend Machine Learning Tools

Extend Machine Learning Tools
Photo by James Case, some rights reserved.

Bend The Tool To Your Needs

After you have been using one machine learning tool for a while on a project or across projects, you build up a deep knowledge for how to use it. You also get a good idea of the types of features and capabilities you wish the tool offered.

More often than not, you are likely to build up your own procedures and ways of using the tool that are tailored to the way you like to work. These procedures may even be codified in scripts and documentation that you and your team consult often.

You may even have your own in-house patches and extensions to the tool that you have begun to rely on in your projects.

The chances are that if you have found them useful, other people may as well.

Demonstrate Deeper Skills

It is possible that you have or would like to make substantial changes to the tool. For example, to add a new technique or a new interface.

These types of changes require a depth of knowledge of the tool that is beyond what most practitioners are capable of. It is hard to describe your skills with a tool that you may have been using for months or years.

Demonstrating your deeper knowledge of a machine learning is much simpler than trying to explain and could be useful on new project and even in interviews.

Create Extensions to Machine Learning Tools

The answer is to create extensions or augmentations to the machine learning tools that you use.

Augmenting a tool with the processes you already use, the features you need or have already developed forces you to formalize them and bake them into the tool for you and anyone else to use.

It takes something that might have been a kludge, side project or idea and turns it into a real mini-project with a real outcome that improves the tool.

Also, creating extensions to machine learning tools sends a clear signal that you know enough about the tool to identify and address limitations and develop new features to extend the capability of the tool.

I call these extensions augmentations because they build upon the tool in some way and change or improve their capability.

Augment Any Machine Learning Tool

You need to use a systematic process to create an augmentation to a machine learning tool.

Quick 5-Step Process

  1. Select Tool. Select the tool that you want to augment. This may be a tool that you have described, proceduralized or investigated. Ideally, it would be a tool that you have used before and use often.
  2. Select Limitation. Determine the problem that you want to address with your augmentation. This may be a missing feature or a missing capability. Ideally, it would be a feature that you require or one that you are working around with your own fixes. For example scripts that combine existing features of the tool.
  3. Design Augmentation. Design the change to the tool. This will depend on the tool, but it should align with the design principles of the tool itself including existing APIs. Use other third-party extensions as a template. Consider contacting the development team and ask advice on the best way to create a third party extension if such advice is missing from the documentation.
  4. Build Augmentation. Use good software engineering practices to ensure you build the right thing, that it works and that you complete quickly.
  5. Share Augmentation. Share the completed extension with friends, colleagues and even publicly. Consider sharing it with other users of the tool. You may want to host the project on an open source software platform such as GitHub.

Tips To Create Great Augmentations

Below are tips that you can use to make great augmentations to machine learning tools.

  • Narrow Focus. Make the focus of your extension as narrow as possible. Ideally it would do one thing, such as provide one additional technique.
  • Short Cycle. Get a working version of your extension going as soon as possible. The faster the better, even if it only has a fraction of all the attributes and parameters you have in mind. Use agile engineering process and deliver early and often.
  • Small Project. Don’t take too long. Try to complete the first working version of the extension within a week of working nights and weekends. If you don’t have a working version after a week, consider shrinking the scope of the extension.
  • Good Documentation. Create documentation for your extension. Give examples that any one can copy and paste orĀ  follow step-by-step to make your augmentation work with the tool. Clearly explain why you created and what it provides.
  • Open Source. Release your augmentation to the tool as open source. This allows other people to contribute, extend and learn from your work.
  • Promote. Share your extension with other users of the tool. Post to forums and mailing lists and even consider emailing specific people. You want people to use your extension and give you feedback so that you might make further improvements.

Examples of Augmentations

Below are some examples of augmentations to machine learning tools that you could make:

  • Create a patch. This is a change to the source code of the tool, in the case that it is open source. You could distribute the patch or even make a request that the patch be applied to the tool. In the latter case, if the change was accepted you could even get credit as a contributor to the project.
  • Create a plug-in. Some libraries and platforms facilitate the creation of third party plug-ins. Create a standalone plug-in that includes your new feature.
  • Create a wrapper. This could be a script or interface that makes it easier to perform some action or task using the tool. This could even be as extravagant as adding a command line interface to a library or a graphical user interface to an existing tool.

You Can Augment Machine Learning Tools

You do not need to be an expert in the tool. You can make extensions for a tool if you can identify a specific limitation or need that is missing from the tool. You only need to know enough about the tool to understand how to extend it effectively. This may include custom APIs used by the tool, which may require specialized knowledge.

You do not need to be an expert in machine learning. Extending a machine learning software tool is more of an engineering challenge than a machine learning challenge. That being said, your augmentation may require deep knowledge of a specific machine learning technique in order for you to implement it. Consider adding a technique that you understand well, or a feature that has more engineering than machine learning, such as combining techniques or providing a new interface.

You do not need to be an excellent programmer. You need good enough engineering skills to complete the extension. This is not master level programming, but you should have good software engineering practices like design, testing and ideally use agile software development processes.

Summary

In this post you discovered how to augment machine learning tools.

You discovered that by creating augmentations to machine learning tools that you can formalize the way that you use the tool on your project and fill of missing features provided by the tool.

You also discovered that by sharing your extensions to the tool is a way of demonstrating mastery of the tool to friends, colleagues and other people. This can be useful in interviews.

You learned a quick 5-step process for augmenting a machine learning tool:

  1. Select the tool that you want augment.
  2. Identify the limitation in the tool that you want to implement.
  3. Design your augmentation in the form of a patch, plug-in or wrapper.
  4. Build your augmentation to the machine learning tool using good engineering practices.
  5. Share your augmentation so that others can benefit from your work and to demonstrate your mastery of the tool.

Your Next Step

Is there a machine learning tool that you want to augment?

Commit to augmenting the tool Right Now!

  1. Post a note in the comments. I’d love to know which tool you want to augment.
  2. Use the process described above and design and share your augmentation.

Do you have any questions about this process? Email me or leave a comment.

相關推薦

Extend Machine Learning Tools and Demonstrate Mastery

Tweet Share Share Google Plus After you have been using a tool for a while, you will develop a s

IBM and Nvidia collaborate to expand open source machine learning tools

IBM has recently announced that it plans to incorporate the new RAPIDS open source software into its enterprise-grade data science platform for on-premises

斯坦福大學公開課機器學習: advice for applying machine learning | regularization and bais/variance(機器學習中方差和偏差如何相互影響、以及和算法的正則化之間的相互關系)

交叉 來講 相對 同時 test 如果 開始 遞增 相互 算法正則化可以有效地防止過擬合, 但正則化跟算法的偏差和方差又有什麽關系呢?下面主要討論一下方差和偏差兩者之間是如何相互影響的、以及和算法的正則化之間的相互關系 假如我們要對高階的多項式進行擬合,為了防止過擬合現象

Announcing Amplify's New Machine Learning Capabilities and Guided A/B… Outreach

The pressure and expectation of sales reps to be more efficient and effective at their trade, more focused on higher profitability, and more reliant on dat

Microsoft's machine learning tools for developers get smarter

It's a big day for Microsoft today, which announced a slew of updates across virtually all of its product lines at its Ignite conference today. Unsurprisin

Types of Machine Learning Algorithms and their use

GBM is a boosting algorithm used when we deal with plenty of data to make a prediction with high prediction power. Boosting is actually an ensemble of lear

Roundup Of Machine Learning Forecasts And Market Estimates, 2018

These and many other fascinating insights are from the latest series of machine learning market forecasts, market estimates, and projections. Machine learn

Utilising machine learning, AI and the cloud to deliver a more personalised customer experience

Paul Armstrong, Principal Solutions Architect, Amazon Web Services: "To deliver a truly personalised travel experience, the first thing airports and airlin

driven Machine Learning Tools Can Make Enterprises More Productive | AITopics

Artificial Intelligence and Machine Learning have barged into our lives without our knowledge and have now taken a permanent spot in there. Despite the sca

Machine learning tools ease cloud security, log management

AI and machine learning tools are an especially good fit for log management because of their number-crunching capabilities, said Torsten Volk, managing res

Marginally Interesting: Machine Learning Feeds and Twitterers

Tweet I’ve put together some information about machine learning people

Build a Deep Understanding of Machine Learning Tools Using Small Targeted Projects

Tweet Share Share Google Plus Once you have chosen a machine learning tool you need to improve y

Artificial intelligence and machine learning: lessons and opportunities

At this year's Teradata Analytics Universe event, I shared some of the lessons I have learned over the years from my research and deployment of artificial

Publicly accessible learning resources and tools related to machine learning

try rom ember lib inter explore .org collect deep Table 2 | Publicly accessible learning resources and tools related to machine learning

Optimization and Machine Learning(優化與機器學習)

compute war limit label right whether computer itself phy 這是根據(ShanghaiTech University)王浩老師的授課所作的整理。 需要的預備知識:數分、高代、統計、優化 machine learning

學習 Machine Learning Mastery With Python (1)

測試套件 實際應用 十分 機器學習 小數 機器學習算法 很多 結果 分鐘 1 介紹 1.1 機器學習的錯誤的想法 一定要對python 編程和python語法非常了解 深入學習scikit learn使用的機器學習算法的理論和參數 避免或者不能接觸實際項目中的其他部分。

斯坦福大學公開課機器學習:machine learning system design | trading off precision and recall(F score公式的提出:學習算法中如何平衡(取舍)查準率和召回率的數值)

ron 需要 color 不可 關系 machine 同時 機器學習 pos 一般來說,召回率和查準率的關系如下:1、如果需要很高的置信度的話,查準率會很高,相應的召回率很低;2、如果需要避免假陰性的話,召回率會很高,查準率會很低。下圖右邊顯示的是召回率和查準率在一個學習算

Day3----《Pattern Recognition and Machine Learning》Christopher M. Bishop

思想 over ear 理解 出現 rec 應該 mach 耐心 其實今天只花了一點點時間來學習這本書, 如果模型的參數過多,而訓練數據又不足夠多的話,就會出現overfitting。 overfitting可以通過regularization來解決,貝葉斯方法也可以避

OReilly.Hands-On.Machine.Learning.with.Scikit-Learn.and.TensorFlow學習筆記彙總

其中用到的知識點我都記錄在部落格中了:https://blog.csdn.net/dss_dssssd 第一章知識點總結: supervised learning k-Nearest Neighbors Linear Regression