當前位置:
首頁 > 科技 > 5個冷門機器學習項目,助你打怪升級!

5個冷門機器學習項目,助你打怪升級!

全文共1543字,預計學習時長3分鐘

這篇文章將介紹你可能還沒有聽說過的5個機器學習項目,包括來自許多不同生態系統和編程語言的項目。你會發現,即使你不需要任何特定的工具,觀察其廣泛的實現細節或其特定代碼也可能有助於產生你自己的一些想法。

1. Hyperopt-sklearn

Hyperopt-sklearn是基於Hyperopt的模型選擇,用於scikit-learn項目中的機器學習演算法。以下是直接來自項目的文檔:

可能很難找到適合你的數據的分類器。一旦選擇了分類器,調整所有參數以獲得最佳結果是繁瑣且耗時的。即使在你辛苦工作之後,你也可能選擇了錯誤的分類器。

Hyperopt-sklearn為此問題提供了解決方案。

Hyperopt-sklearn使用各種搜索演算法,可以搜索所有(支持的)分類器或僅搜索給定分類器的參數空間,並支持許多預處理步驟,如PCA,TfidfVectorizer,Normalzier和OneHotEncoder。

它有用嗎?

下表顯示了使用scikit-learn的默認參數運行的分類器獲得的F1分數,以

及20個新聞組數據集上的hyperopt-sklearn優化參數。hyperopt-sklearn

的結果是從一個單一的運行與25分的評價獲得的。

Hyperopt-sklearn需要很少的額外代碼就能正常工作,並且有一些便於快速啟動的代碼可以用。

2. Dlib

Dlib是一個通用工具包,它可在C 中創建機器學習和數據分析應用程序。它是用C 編寫的。但不要擔心,它還有一個Python API。

來自官方網站:

Dlib是一個現代的C 工具包,包含機器學習演算法和工具,用於在C 中創建複雜的軟體來解決實際問題。它廣泛應用於工業界和學術界,包括機器人,嵌入式設備,行動電話和大型高性能計算環境。

文檔符合標準,API得到了很好的解釋,項目附帶了簡潔的介紹。博客也很使人活躍,博客使用該庫概述了一些有趣的項目。Dlib也不是新的; 它自2002年以來一直在開發中。

3. NN

暫時使用C ,NN 對於所述語言來說是一個很小且易於使用的神經網路實現。它無需安裝,只需下載和#include。

報告節選:

一個簡短,獨立且易於使用的C 神經網路實現。它包括神經網路實現和用於基本線性代數運算的Matrix類。 該項目主要用於學習目的,但MNIST數據集的初步測試結果展示了些成功的希望。

它的文檔很稀疏,但該文檔特別注意解釋隨附的Matrix類的用法。 一些代碼片段解釋了設置和查詢神經網路。 代碼是最小的,所以那些希望了解後台的簡單神經網路或者直接從另一種語言轉移到用C 實現網路編程的人,這個項目值得一看。

4. LightGBM

LightGBM是Microsoft梯度提升樹演算法的實現。報告節選:

基於決策樹演算法的快速,分散式,高性能梯度增強(GBDT,GBRT,GBM或MART)框架,用於排名,分類和許多其他機器學習任務。該框架位域微軟的DMTK項目的保護傘下。

LightGBM以C 和Python編寫,具有快速入門指南,並行學習指南以及其功能的質量概述。

但它是如何表現的?

公共數據集上的實驗表明,LightGBM在效率和準確性方面都優於其他現有的增強框架,並且大大降低了內存消耗。更重要的是,實驗表明LightGBM可以通過在特定設置中使用多台機器進行訓練來實現線性加速。

與其他Microsoft分散式機器學習工具包一樣,LightGBM具有許多看起來值得一試的功能。

5. Sklearn-pandas

迄今為止,項目成為通用機器學習的工具包,或特定演算法的實現。這個項目有點不同,它對機器學習任務起著支持的作用。

Sklearn-pandas是一個積極開發的模塊,「它使Scikit-Learn的機器學習方法和pandas式數據框架之間實現了連接。」

報告節選:

特別是,它提供了:

一種將DataFrame列映射到轉換的方法,這些轉換稍後會重新組合到要素中。

舊scikit-learn版本的兼容性填充程序,用於交叉驗證將pandas DataFrame作為輸入的通道。這隻需要scikit-learn

這裡真正的用途是將列映射到轉換。以下是來自Gitub報告中的片段,演示如下:

import pandas as pd

import numpy as np

import sklearn.preprocessing, sklearn.decomposition, sklearn.linear_model, sklearn.pipeline, sklearn.metrics

from sklearn.feature_extraction.text import CountVectorizer

# Import Sklearn-pandas

from sklearn_pandas import DataFrameMapper, cross_val_score

# Load some Data

data = pd.DataFrame({"pet": ["cat", "dog", "dog", "fish", "cat", "dog", "cat", "fish"],

"children": [4., 6, 3, 3, 2, 3, 5, 4],

"salary": [90, 24, 44, 27, 32, 59, 36, 27]})

# Map the Columns to Transformations

mapper = DataFrameMapper([

("pet", sklearn.preprocessing.LabelBinarizer()),

(["children"], sklearn.preprocessing.StandardScaler())

])

# Test the Transformation

print np.round(mapper.fit_transform(data.copy()), 2)

array([[ 1. , 0. , 0. , 0.21],

[ 0. , 1. , 0. , 1.88],

[ 0. , 1. , 0. , -0.63],

[ 0. , 0. , 1. , -0.63],

[ 1. , 0. , 0. , -1.46],

[ 0. , 1. , 0. , -0.63],

[ 1. , 0. , 0. , 1.04],

[ 0. , 0. , 1. , 0.21]])

請注意,前三列是LabelBinarizer的輸出(分別對應於cat,dog和fish),第四列是子節點數的標準值。通常,列是根據構造DataFrameMapper時給出的順序排序的。

留言 點贊 發個朋友圈

我們一起分享AI學習與發展的乾貨

編譯組:張怡雯、狄思雲

相關鏈接:

http://blog.yhat.com/posts/ML-to-watch.html

如需轉載,請後台留言,遵守轉載規範

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 讀芯術 的精彩文章:

想提高預測精度?7步教你微調機器學習模型
數據科學淘金熱:如何獲取那些頂尖工作?

TAG:讀芯術 |