<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                > 簡單了解傳統機器學習庫SKLearn和深度學習庫TensorFlow。 > 本課學習時長評估:1小時。 > [原文鏈接](https://www.cnblogs.com/lixuejian/p/10562092.html) ## 功能不同 Scikit-learn(sklearn)的定位是通用機器學習庫,而TensorFlow(tf)的定位主要是深度學習庫。 一個顯而易見的不同:tf并未提供sklearn那種強大的特征工程,如維度壓縮、特征選擇等。 究其根本,是因為機器學習模型的兩種不同的處理數據的方式: * 傳統機器學習:利用特征工程(feature engineering),人為對數據進行提煉清洗 * 深度學習:利用表示學習(representation learning),機器學習模型自身對數據進行提煉 sklearn更傾向于使用者可以自行對數據進行處理,比如選擇特征、壓縮維度、轉換格式,是傳統機器學習庫。 而以tf為代表的深度學習庫會自動從數據中抽取有效特征,而不需要人為的來做這件事情,因此并未提供類似的功能。 ## 使用自由度不同 sklearn 中的模塊都是高度抽象化的,所有的分類器基本都可以在3-5行內完成,所有的轉換器(如scaler和transformer)也都有固定的格式。 這種抽 象化限制了使用者的自由度,但增加了模型的效率,降低了批量化、標準化的的難度(通過使用pipeline)。 ~~~ clf = svm.SVC() # 初始化一個分類器 clf.fit(X_train, y_train) # 訓練分類器 y_predict = clf.predict(X_test) # 使用訓練好的分類器進行預測 ~~~ 而tf不同,雖然是深度學習庫,但它有很高的自由度。 你依然可以用它做傳統機器學習所做的事情,代價是你需要自己實現算法。 因此用tf類比sklearn不適合,封裝在tf等工具庫上的keras才更像深度學習界的sklearn。 從自由度角度來看,tf更高; 從抽象化、封裝程度來看,sklearn更高; 從易用性角度來看,sklearn更高。 ## 針對的群體、項目不同 sklearn主要適合中小型的、實用機器學習項目,尤其是那種數據量不大且需要使用者手動對數據進行處理,并選擇合適模型的項目。這類項目往往在CPU上就可以完成,對硬件要求*。 tf主要適合已經明確了解需要用深度學習,且數據處理需求不高的項目。 這類項目往往數據量較大,且最終需要的精度更高,一般都需要GPU加速運算。 對于深度學習做“小樣”可以在采樣的小數據集上用keras做快速的實驗,沒了解的過朋友看一下keras的示例代碼,就可以了解為什么keras堪比深度學習上的sklearn了。 ~~~ model = Sequential() # 定義模型 model.add(Dense(units=64, activation='relu', input_dim=100)) # 定義網絡結構 model.add(Dense(units=10, activation='softmax')) # 定義網絡結構 model.compile(loss='categorical_crossentropy', # 定義loss函數、優化方法、評估標準 optimizer='sgd', metrics=['accuracy']) model.fit(x_train, y_train, epochs=5, batch_size=32) # 訓練模型 loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128) # 評估模型 classes = model.predict(x_test, batch_size=128) # 使用訓練好的數據進行預測 ~~~ 不難看出,sklearn和tf有很大區別。雖然sklearn中也有神經網絡模塊,但做嚴肅的、大型的深度學習是不可能依靠sklearn的。雖然tf也可以用于做傳統的機器學習、包括清理數據,但往往事倍功半。 ## scikit-learn&tensorflow結合使用 更常見的情況下,可以把**sklearn和tf,甚至keras結合起來使用**。 sklearn肩負基本的數據清理任務,keras用于對問題進行小規模實驗驗證想法,而tf用于在完整的的數據上進行嚴肅的調參(煉丹)任務。 而單獨把sklearn拿出來看的話,它的文檔做的特別好,初學者跟著看一遍sklearn支持的功能大概就對機器學習包括的很多內容有了基本的了解。 舉個簡單的例子,sklearn很多時候對單獨的知識點有概述,比如簡單的異常檢測。因此,sklearn不僅僅是簡單的工具庫,它的文檔更像是一份簡單的新手入門指南。 因此,以sklearn為代表的傳統機器學習庫(如瑞士軍刀般的萬能但高度抽象),和以tf為代表的自由靈活更具有針對性的深度學習庫(如樂高般高度自由但使用繁瑣)都是機器學習者必須要了解的工具。 ## 不過sklearn 還是很有 必要學習的 理論上來說,**深度學習技術也是機器學習的一個組成部分**,學習其他傳統機器學習方法對深入理解深度學習技術有很大幫助,知道模型凸的條件,才能更好的理解神 經網絡的非凸。知道傳統模型的優點,才能更好的理解深度學習并不是萬能的,也有很多問題和場景直接使用深度學習方法會遇到瓶頸和問題,需要傳統方法來解 決。 從實踐上來說,深度學習方法一般需要大量GPU機器,工業界哪怕大公司的GPU資源也是有限的,一般只有深度學習方法效果遠好于傳統方法并且 對業務提升很大的情況下,才會考慮使用深度學習方法,例如語音識別,圖像識別等任務現在深度學習方法用的比較多,而NLP領域除了機器翻譯以外,其他大部 分任務仍然更常使用傳統方法。傳統方法一般有著更好的可解釋性,這對檢查調試模型也是非常有幫助的。工業上一般喜歡招能解決問題的人,而不是掌握最火技術 的人,因此在了解深度學習技術的同時,學習一下傳統方法是很有好處的。 ## 結尾 說實話,即使現在深度學習大行其道,很多時候你還是要用傳統機器學習方法解決問題的。首先不是每個人都有一個彪悍的電腦/服務器,其次,大多數問題真的不需要深度網絡。最后,只會調用工具包的程序員不是好的機器學習者。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看