日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

想要成为数据科学家?知道这11种机器学习算法吗?

發布時間:2024/8/23 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 想要成为数据科学家?知道这11种机器学习算法吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要: 想要成為數據科學家?知道這十幾種機器學習算法嗎?趕快來了解一下吧,文中附各種算法的資源地址!

機器學習從業者都有不同的個性,雖然其中一些人會說“我是X方面的專家,X可以訓練任何類型的數據”,其中X是某種算法。但是,我們不得不承認的是在現實生活當中,不存在一個X可以訓練任何類型的數據。某些算法落實到某些行業中是適合的,但到了那個行業就變得不適合了。

在數據科學界存在一個共識:作為數據科學家,我們必須盡可能多的了解通用的及其學習算法。這樣我們才能在面臨不同行業的問題時有更多的解決方案。本文對通用的機器學習算法進行了簡要的闡述,并提供了關于他們的相關資源,從而幫助你能夠快速掌握其中的奧妙。

1.主成分分析(PCA)/ SVD

PCA是一種無監督的方法,用于理解由矢量組成的數據集的全局屬性。在這里我們著重分析數據點的協方差矩陣,以了解哪些維度/數據點更重要(即它們之間具有高度的協變性,但與其他變量之間的協變性較低)。考慮矩陣頂級主成分(PC)的一種方式是考慮具有最高特征值的特征向量。奇異值分解(SVD)本質上也是一種計算有序組件的方法,但你不需要獲得點的協方差矩陣就可以得到它。

這種算法通過獲得維度縮小的數據點來幫助人們克服維度的詛咒

庫地址:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

入門教程:

https://arxiv.org/pdf/1404.1100.pdf

2.最小二乘法和多項式擬合

還記得在大學里的數值分析課程嗎?你可以使用它們來擬合機器學習中的具有低維度的小型數據集的曲線。(而對于具有多維的大數據或數據集,你可能最終會過度擬合。)OLS有一個封閉式的解決方案,因此你無需使用復雜的優化技術。

上圖很明顯,使用這種算法可以擬合簡單的曲線/回歸

庫地址:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit html的

入門教程:

https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/linear_regression.pdf

3.約束線性回歸

最小二乘法可能會與異常值,假字段和數據中的噪聲混淆。因此,我們需要約束來減少數據集上擬合產生的線方差。做到這一點的方法是擬合線性回歸模型,以確保權重不會有誤。模型可以有L1范數(LASSO)或L2(Ridge Regression)或兩者兼具。通過這種方法就可以使均方損失得到優化。

使用這個算法來擬合具有約束條件的回歸線,可以避免過度擬合和掩蓋模型中的噪音維度。

庫地址:

http://scikit-learn.org/stable/modules/linear_model.html

入門教程:

https://www.youtube.com/watch?v=5asL5Eq2x0A

https://www.youtube.com/watch?v=jbwSCwoT51M

4.K均值聚類

大多數機器學習從業者都喜歡無監督聚類算法。給定一組矢量形式的數據點,我們可以根據它們之間的距離制作點集群。這是一個期望最大化算法,它迭代地移動聚類中心,然后聚焦每個聚類中心點。該算法所采用的輸入是將要生成的簇的數量以及它將嘗試聚集簇的迭代次數。

從名字上可以明顯看出,你可以使用此算法在數據集中創建K個群集。

庫地址:

http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

入門教程

https://www.youtube.com/watch?v=hDmNF9JG3lo

https://www.datascience.com/blog/k-means-clustering

5.Logistic回歸

Logistic回歸是線性回歸,在擁有權重后帶有非線性(主要使用sigmoid函數,或者使用tanh函數)應用,因此把輸出限制接近+/-類(對于sigmoid,為1和0)。交叉熵損失函數使用梯度下降進行優化。初學者注意:Logistic回歸是用于分類的,而不是回歸。你也可以將Logistic回歸看作單層神經網絡。使用梯度下降或L-BFGS等優化方法對Logistic回歸進行訓練。從事NLP的人經常會以最大熵分類器的名稱來使用它。

這是一個Sigmoid的樣子:

庫地址:

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

入門教程

https://www.youtube.com/watch?v=-la3q9d7AKQ

6.支持向量機(SVM)

支持向量機是線性/邏輯回歸的線性模型,區別在于它們具有不同的基于邊界的損失函數(支持向量的推導是我觀察到的與特征值計算在一起的最美妙的數學結果之一)。你可以使用L-BFGS甚至SGD等優化方法優化損失函數。

SVM的另一個創新是向數據工程師提供數據內核。如果你具有良好的洞察力,你可以用更聰明的RBF內核替換舊的RBF內核。

SVM可以做到的事情是學習一個類分類器。

支持向量機可以用來訓練分類器(甚至是回歸器(regressors))。

庫地址:

http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html

入門教程

https://www.youtube.com/watch?v=eHsErlPJWUU

注意:基于SGD的Logistic回歸和SVM的訓練可以在我經常使用的SKLearn中找到,因為它可以讓我用一個通用接口來檢查LR和SVM。

7.前饋神經網絡(FFNN)

這可以算的上是多層Logistic回歸分類器。許多權重層被非線性(S形,tanh,relu + softmax和selu)分開了。它另外一個的名字是多層感知器。FFNN可用于自動編碼器的分類和無監督特征學習。

多層感知器

FFNN作為自動編碼器

可以使用FFNN作為自動編碼器訓練分類器或用來特征提取。

庫地址:

http://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifier

http://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html

https://github.com/keras-team/keras/blob/master/examples/reuters_mlp_relu_vs_selu.py

入門教程

http://www.deeplearningbook.org/contents/mlp.html

http://www.deeplearningbook.org/contents/autoencoders.html

http://www.deeplearningbook.org/contents/representation.html

8.卷積神經網絡(Convnets)

幾乎當今世界上所有的最先進的基于視覺的機器學習結果都是使用卷積神經網絡實現的。它們可用于圖像分類、對象檢測和圖像分割。它是由Yann Lecun在80年代末90年代初發明的,Convnets具有卷積層作為分層特征提取器。你也可以在文本中使用它們(甚至是圖表)。

利用CNN對圖像和文本分類,目標檢測,圖像分割的過程。

庫地址:

https://developer.nvidia.com/digits

https://github.com/kuangliu/torchcv

https://github.com/chainer/chainercv

https://keras.io/applications/

入門教程

http://cs231n.github.io/

https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks/

9.遞歸神經網絡(RNNS)

RNN模型序列通過在時間t遞歸地對聚集器狀態施加相同的權重集,并且在時間t輸入(給定序列在時間t處具有輸入,并且在每個時間t具有隱藏狀態,這是從RNN的t-1步輸出的)。現在很少使用純RNN,但是像LSTM和GRU這樣的同類模型在大多數序列建模任務中是最先進的。

RNN(如果存在密集連接的單元和非線性,則現在的f通常是LSTM或GRU)。LSTM單元用于替代純RNN中的簡單致密層。

將RNN用于時間序列建模任務,特別是文本分類,機器翻譯和語言建模。

庫地址:

https://github.com/tensorflow/models(來自Google的許多不錯的NLP研究論文都在這里!)

https://github.com/wabyking/TextClassificationBenchmark

http://opennmt.net/

入門教程:

http://cs224d.stanford.edu/

http://www.wildml.com/category/neural-networks/recurrent-neural-networks/

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

10.條件隨機字段(CRFS)

CRF可能是概率圖形模型(PGM)系列中最常用的模型。它們用于像RNN一樣的序列建模,也可以與RNN結合使用。在神經機器翻譯系統進入CRF之前,它們是最先進的技術,并且在許多具有小數據集的序列標記任務中,他們仍然表現的比RNN更好。它們也可以用于其他結構化預測任務,如圖像分割等。CRF對序列中的每個元素(比如句子)進行建模,使得近鄰影響序列中某個組件的標簽,而不是所有標簽都彼此獨立。

使用CRF標記序列(文本、圖像、時間序列、DNA等)。

庫地址:

https://sklearn-crfsuite.readthedocs.io/en/latest/

入門教程

http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/

https://www.youtube.com/watch?v=GF3iSJkgPbA

11.決策樹

比方說,我給了一張有關各種水果數據的Excel工作表,我必須標注這是蘋果,那是其他類型的水果。那么,如果我要提出一個問題是“哪些水果是紅色的,那些事圓形的?”并且將所有回答用“是”和“否”來表示。現在,所有的紅色的和圓形的水果可能不是蘋果,所有的蘋果也都不會是紅色和圓形的。所以我會問一個問題:“哪些水果有紅色或黃色的提示?“紅色且為圓形的水果,并會問“哪些水果是綠色且圓形的?而不是紅色和圓形水果?基于這些問題,我可以等到準確的答案——蘋果。這個問題的解決方式就是使用決策樹。但是,這是基于我的直覺的決策樹。直覺不能處理高維和復雜的數據。我們必須通過查看標記數據自動提出問題的級聯,這就是基于機器學習的決策樹所做的。像CART樹這樣的早期版本只能用于簡單的數據,但是對于越來越大的數據集,偏差-方差的權衡需要通過更好的算法來解決。現在使用的兩種常見決策樹算法是隨機森林(在其屬性的隨機子集上構建不同的分類器并將它們組合以用于輸出)和增強樹(Boosting Trees)(在其他樹的基礎上對樹的級聯進行訓練,糾正它們下面的樹的錯誤)。

決策樹可以用來分類數據點(甚至是回歸)。

圖書館

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html

http://xgboost.readthedocs.io/en/latest/

https://catboost.yandex/

入門教程

http://xgboost.readthedocs.io/en/latest/model.html

https://arxiv.org/abs/1511.05741

https://arxiv.org/abs/1407.7502

http://education.parrotprediction.teachable.com/p/practical-xgboost-in-python

以上是你可以學習成為數據科學家的十種機器學習算法。

本文由阿里云云棲社區組織翻譯。

文章原標題《10 Machine Learning Algorithms You Should Know to Become a Data Scientist》

作者:Shashank Gupta

譯者:虎說八道,審校:。

原文鏈接
干貨好文,請關注掃描以下二維碼:

總結

以上是生活随笔為你收集整理的想要成为数据科学家?知道这11种机器学习算法吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。