Bài viết này nhằm mục đích mục đích tổng hợp, cầm tắt lại những thuật toán của Machine Learning, giúp cho bạn đọc bao gồm cái nhìn toàn cảnh và hiểu rõ hơn về Deep Learning.

Bạn đang xem: Phân tích dữ liệu đa lớp (Multilayer Data Analytics)

Các thuật toán ML, nhìn chung rất có thể phân các loại theo 1 trong 2 cách:

Theo phương pháp “học” của thuật toán
Theo phương thức làm việc của thuật toán

Cả 2 biện pháp phân nhiều loại đều phù hợp lý, bạn có thể chọn tùy ý. Trong bài bài này, mình đang đi sâu hơn theo phong cách thứ 2. Cũng đề nghị nói thêm rằng, mặc dù phân loại theo cách nào thì cũng đều mang ý nghĩa chất tương đối, vị một thuật toán rất có thể thuộc những nhóm không giống nhau, tùy thuộc vào dữ liệu đưa vào huấn luyện và đào tạo model.


*

1. Phân loại theo cách “học” (Learning Style)

1.1 học có giám sát và đo lường (Supervised Learning)

Trong phương pháp học này, tài liệu đưa vào đào tạo và giảng dạy model, hotline là input đầu vào data, đi kèm với một nhãn đã biết trước (input data đã được dánh nhãn). Ví dụ như là spam/not-spam, giá cp tại một thời điểm, …

Trong quá trình training, output đầu ra của model được so sánh với nhãn. Nếu bao gồm sự không nên khác, model sẽ nắm gắng cập nhật các trọng số của nó để sút sự sai khác đó cho một mức làm sao đó thỏa mãn nhu cầu yêu cầu bài xích toán.

Các vấn đề có thể giải quyết theo phong cách này: Phân lớn, hồi quy.

Một số thuật toán thuộc một số loại này: Logistic Regression, Backpropagation, …


*

1.2 học không đo lường và thống kê (Unsupervised Learning)

Input data không được đánh nhãn theo cách học này. Model được huấn luyện bằng cách giảm kết cấu phức tạp của dữ liệu, tra cứu ra các đặc trưng, các mối tương tác tương quan liêu trong dữ liệu.

Các vấn đề có thể giải quyết theo phong cách này: phân cụm, sút chiều dữ liệu.

Một số thuật toán thuộc một số loại này: Apriori, K-Means, …


*

1.3 học tập bán giám sát (Semi-supervised)

Input data bao hàm cả 2 loại: vẫn đánh nhãn và không tấn công nhãn.

Model sẽ sử dụng phối kết hợp cả 2 biện pháp học giám sát và không thống kê giám sát trong quá trình huấn luyện. Dựa vào công dụng dự đoán của model trên tài liệu chưa đánh nhãn, nhà cải cách và phát triển sẽ tốn ít sức lực lao động hơn trong bài toán đánh nhãn đến những dữ liệu đó. Độ đúng mực của mã sản phẩm sẽ được nâng cao dần dần dần khi có rất nhiều dữ liệu được đánh nhãn hơn.

Thực tế, tất cả các thuật toán đều hoàn toàn có thể thuộc thể một số loại này vì chưa phải lúc nào cũng có thể có đầy đủ dữ liệu được tấn công nhãn ngay lập tức từ đầu.


*

2. Phân loại theo cách làm việc

2.1 Regression Algorithms

Các thùât toán được xếp vào nhóm này lúc nhãn của tài liệu là các giá trị liên tục. Ví dụ: sức nóng độ, giá chỉ tiền, diện tích, …

Một số thuật toán:

Ordinary Least Squares Regression (OLSR)Linear Regression
Logistic Regression
Stepwise Regression
Multivariate Adaptive Regression Splines (MARS)Locally Estimated Scatterplot Smoothing (LOESS)
*

2.2 Classification Algorithms

Các thuật toán thụộc đội này lúc nhãn của tài liệu chỉ gồm 1 số lượng hữu hạn những giá trị. Ví dụ: Spam/not-spam, ngoại hình (tròn, vuông, tam giác), …

Một số thuật toán:

Linear Classifier
Support Vector Machine (SVM)Kernel SVMSparse Representation-based classification (SRC)

2.3 Instance-based Algorithms

Các thuật toán thuộc nhóm này sẽ không “học” gì trường đoản cú dữ liệu. Lúc nào cần dự đoán nhãn cho tài liệu mới, chúng sẽ quét cục bộ dữ liệu thuở đầu và đo lường tương quan tiền với tài liệu mới để đưa ra quyết định nhãn.

Một số thuật toán:

k-Nearest Neighbor (k
NN)Learning Vector Quantization (LVQ)Self-Organizing map (SOM)Locally Weighted Learning (LWL)

2.4 Regularization Algorithms

Các thuật toán hoàn toàn có thể được mở rộng theo biện pháp “trừng phạt” model dựa trên độ phức hợp của chúng, làm cho mã sản phẩm trở nên đơn giản hơn, tác dụng là “học” tốt hơn.

Một số thuật toán:

Ridge Regression
Least Absolute Shrinkage and Selection Operator (LASSO)Elastic Net
Least-Angle Regression (LARS)

2.5 Decision Tree

Đây là phương pháp xây dựng model phụ thuộc trực tiếp giá trị thực tiễn của input data. Tùy theo các điều kiện rõ ràng áp dụng vào input đầu vào data mà mã sản phẩm sẽ chuyển ra các quyết định không giống nhau. Trong ML, những thuật toán thuộc nhóm này được sử dụng khá phổ biến.

Một số thuật toán:Classification and Regression Tree (CART)

Iterative Dichotomiser 3 (ID3)C4.5 & C5.0 (different versions of a powerful approach)Chi-squared Automatic Interaction Detection (CHAID)Decision Stump
M5Conditional Decision Trees

2.6 Bayesian Algorithms

Đây là họ các thụât toán áp dụng định lao lý Bayes trong xác suất thống kê.

Một số thuật toán:

Naive Bayes
Gaussian Naive Bayes
Multinomial Naive Bayes
Averaged One-Dependence Estimators (AODE)Bayesian Belief Network (BBN)Bayesian Network (BN)

2.7 Clustering Algorithms

Dựa trên con số cụm (nhóm, lớp) mang lại trước, những thuật toán clusering sẽ phân chia các điểm tài liệu về từng lớp, dựa trên sự đối sánh tương quan giữa các điểm tài liệu đó cùng với nhau.

Một số thuật toán:

k-Meansk-Medians
Expectation Maximisation (EM)Hierarchical Clustering

2.8 Association Rule Learning Algorithms

Các thuật toán này tập trung vào việc tìm và đào bới ra các quy tắc phối hợp giữa các điểm dữ liệu để sinh ra dữ liệu mới, hoặc dữ liệu tồn trên trong tập ban đầu.

Một số thuật toán:

Apriori algorithm
Eclat algorithm

2.9 Artificial Neural Network Algorithms (ANN)

Được truyền xúc cảm từ kết cấu não bộ của các loài động vật, các thuật toán này mô bỏng lại biện pháp làm viêc của những bộ óc đó. Chúng được kết cấu gồm những layers và các nerurons links với nhau.

Một số thuật toán:

Perceptron
Multilayer Perceptrons (MLP)Back-Propagation
Stochastic Gradient Descent
Hopfield Network
Radial Basis Function Network (RBFN)

2.10 Deep Learning (DL) Algorithms

Các thuật toán DL là sự việc nâng cấp, mở rộng của thuật toán ANN. Chúng bao gồm các mạng ANN tinh vi hơn, giải quyết và xử lý các bài toán với lượng tài liệu lớn hơn.

Một số thuật toán:

Convolutional Neural Network (CNN)Recurrent Neural Networks (RNNs)Long Short-Term Memory Networks (LSTMs)Stacked Auto-Encoders
Deep Boltzmann Machine (DBM)Deep Belief Networks (DBN)

Chi tiết hơn về các thuật toán ở team này, mình vẫn đề cập trong bài tiếp theo. Mời chúng ta đón đọc.

2.11 Dimensionality Reduction Algorithms

Đôi khi dữ liệu quá tinh vi sẽ làm giảm kĩ năng học của các ML model. Các thuật toán này sẽ giúp giải quyết vấn đề này bằng phương pháp giảm bớt số chiều của dữ liệu (giảm độ tinh vi của dữ liệu).

Một số thuật toán:

Principal Component Analysis (PCA)Principal Component Regression (PCR)Partial Least Squares Regression (PLSR)Sammon Mapping
Multidimensional Scaling (MDS)Projection Pursuit
Linear Discriminant Analysis (LDA)Mixture Discriminant Analysis (MDA)Quadratic Discriminant Analysis (QDA)Flexible Discriminant Analysis (FDA)

2.12 Ensemble Algorithms

Ensemble là phương pháp sử dụng phối hợp nhiều thuật toán không giống nhau để sinh sản thành một thuật toán mới. Mỗi cách phối hợp khác nhau sẽ mang lại ra những thuật toán không giống nhau. Vào ML, các thuật toán thuộc nhóm này được thực hiện rất phổ biến, đạt công dụng rất cao.

Một số thuật toán:

Boosting
Bootstrapped Aggregation (Bagging)Ada
Boost
Weighted Average (Blending)Stacked Generalization (Stacking)Gradient Boosting Machines (GBM)Gradient Boosted Regression Trees (GBRT)Random Forest

2.13 Recommendation System Algorithms

Đúng như thương hiệu gọi, đấy là các thuật toán giải quyết bài toán lời khuyên người dùng làm một vấn đề gì đó bằng cách đưa mang lại họ các cái mà họ rất có thể quan tâm. Chúng thường được áp dụng trong số trang web thương mại dịch vụ điện tử, các ứng dụng xem phim trực tuyến, …

Một số thuật toán:

Content based
Collaborative filtering

2.14 những thuật toán khác

Còn rất nhiều thuật toán không được liệt kê mặt trên, kia là phần lớn thuật toán giải quyết các việc cụ thể. Rất có thể kể ra một số như sau:

Feature selection algorithms
Algorithm accuracy evaluation
Performance measures
Optimization algorithms…

Vậy là bản thân đã reviews đến các bạn các thuật toán ML nhưng mà các bạn cũng có thể gặp trong quy trình học ML. Hi vọng rằng các bạn đã có cái nhìn tổng thể về chúng, có tác dụng tiền đề nhằm đi sâu hơn trong số bài toán ML về sau.

Trong các bài viết tiếp theo, mình vẫn tổng hòa hợp lại các thuật toán Deep Learning, kế tiếp sẽ đi chi tiết vào một số thụât toán với các ứng phương pháp thể. Mời các bạn đón đọc!

3. Tham khảo


tương tác Me Hanoi, Vietnam
Social Contacts
Categories
Quick link
NT. All Rights Reserved |
This site uses cookies. By continuing lớn use this website, you agree lớn their use. I Accept
Introduction

Với kỷ nguyên tài liệu như hiện tại nay, một tập dữ liệu high-dimension (đa chiều) với hàng ngàn feature hay cột đang trở thành điều không quá xa lạ. High-dimension data mở hướng cho vô số phương pháp xử lý các bài toán phức hợp trong thực tế, hoàn toàn có thể kể đến dự đoán cấu trúc protein tương quan COVID-19, đối chiếu hình hình ảnh MEG scan não, v.v. Mặc dù nhiên, một tập tài liệu high-dimension lại thường chứa các feature kém (không góp phần nhiều vào kết quả) dẫn đến việc giảm tính năng của tế bào hình. Và việc lựa chọn trong rất nhiều feature để chọn ra feature có ảnh hưởng lớn đến kết quả cũng trở nên trở ngại hơn.

Một phương pháp thường được áp dụng là chuyên môn dimensional reduction (hay sút chiều tài liệu

*

*

Trong đó phương pháp thứ nhị thường chia thành phương pháp linear với non-linear (hay manifold learning)

1. Feature Selection + Elimination

Phương pháp dễ nắm bắt và tiến hành nhất. Một vài phương thức phổ thay đổi thường được dùng hoàn toàn có thể kể mang lại như

Missing values ratio: các cột hay feature thiếu nhiều giá trị sẽ phần lớn không góp sức vào quy mô machine learning. Vì vậy, việc chọn feature bỏ có thể dựa trên threshold tỉ lệ quý hiếm missing của feature đó. Giá trị threshold càng tốt thì độ reduction càng lớn.

import pandas as pddf = pd.read_csv("ANSUR.csv")missing_values=df.isnum().sum()/len(def)*100ratios = print( > 0>)variable = < >for i in range(df.columns.shape<0>): if a40: #setting the threshold as 40% variable.append(variables)new_data = dfLow-variance filter: Feature bao gồm variance (phương sai) thấp sẽ không đóng góp những trong mô hình. Vậy tương tự như cách trên, nếu dưới threshold nhất quyết thì sẽ loại bỏ feature đó.from sklearn.preprocessing import normalizevariance = df.var()variable = < >for i in range(0,len(variance)): if variance>=0.006: #setting the threshold as 1% variable.append(columns) new_data = dfHigh-correlation filter các feature nếu tất cả sự tương quan rất có thể được coi như nhau trong mô hình. Điều này khiến việc tồn tại những feature như là nhau không phải thiết. Nếu duy trì lại các feature đối sánh sẽ sút hiệu năng quy mô đáng đề cập (đặc biệt các quy mô linear hay logistic regression).import numpy as npfrom sklearn.preprocessing import normalizeimport pandas as pdnorm = normalize(df)df_norm = pd.Data
Frame.from_records(norm, columns=df.columns)corr_matrix = df_norm.corr().abs() mask = np.triu(np.ones_like(corr_matrix, dtype=bool))tri_df = corr_matrix.mask(mask)results = for i in np.linspace(0.85,0.99,15): i = round(i,2) to_drop = >= i)> reduce_high_corr_df = df.drop(to_drop, axis=1) reduce_high_corr_df = reduce_high_corr_df.drop("Component", axis=1) mean = rfc_mean(reduce_high_corr_df, df<"Component">) results = round(mean,4) high_acc = max(results, key=results.get)print(results)print("Correlation coefficient with the highest predictive accuracy ", high_acc)to_drop = >= 0.88)>print("Number of feature"s dropped ",len(to_drop))Random Forest: phương pháp này cũng tương đối thịnh hành và có ích. Việc sử dụng decision tree có thể tận dụng điểm mạnh thống kê học để tìm ra feature chứa nhiều thông tin để lưu lại nhất. Thuật toán random forest (sklearn) chỉ nhận giá trị số, nên cần phải hot encoding.from sklearn.model_selection import train_test_splitfrom sklearn.ensemble import Random
Forest
Classifierfrom sklearn.metrics import accuracy_scoredef rfc_test_accuracy(X, y): """ Function which takes the predictor and target variables & returns the demo accuracy of the model. """ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) RFC = Random
Forest
Classifier(random_state=123) RFC.fit(X_train,y_train) test_accuracy = accuracy_score(y_test, RFC.predict(X_test)) return test_accuracy def rfc_mean(X,y,trails=20): """ Print the mean value of Random forest classifier for n trails. """ result = mean = np.array(result).mean() return mean print("Predictive accuracy of base random forrest classifier ",round(rfc_mean(df.drop("Component", axis=1),df<"Component">),3))Backwards-feature elimination: Tiếp cận hướng vị trí cao nhất down, bắt đầu với tất cả feature, và đào thải từng feature cho đến hết.from sklearn.model_selection import train_test_splitfrom sklearn.ensemble import Random
Forest
Classifierfrom sklearn.metrics import accuracy_scoreimport matplotlib.pyplot as pltdef MAN_RFE(X,df,trails=20): accuracy = <> for i in range(df.shape<1>,1,-1): X_train, X_test, y_train, y_test = train_test_split(X, df<"Component">, test_size=0.2, random_state=123) for j in range(trails): rfe = Random
Forest
Classifier() rfe.fit(X_train, y_train) acc = accuracy_score(y_test, rfe.predict(X_test)) accuracy.append(acc) feat_import = dict(zip(X.columns, rfe.feature_importances_)) X = X.drop(min(feat_import, key=feat_import.get), axis=1) return list(np.array(accuracy).reshape(100,20)) df_no_com = df.drop("Component",axis=1)accuracy = MAN_RFE(df_no_com, df)plt.figure(figsize=(20, 6))plt.boxplot(accuracy, sym="")plt.ylim(0.5,0.7)plt.xticks(rotation = 90)plt.xlabel("Number of features removed")plt.ylabel("Accuracy")plt.show()Có thể tham khảo ví dụ hơn tại đây

Forward Feature Selection: Ngược lại phương thức trước, xuất phát điểm từ 1 feature và tăng dần những feature tới khi quy mô đạt giá bán trị buổi tối ưu.

from sklearn.feature_selection import f_regressionf_val, p_val = f_regression(X_train, y_train)hoặc mlxtend

from mlxtend.feature_selection import Sequential
Feature
Selector as sfsfrom sklearn.linear_model import Linear
Regressionlreg = Linear
Regression()sfs1 = sfs(lreg, k_features=3, forward=True, verbose=2, scoring="neg_mean_squared_error")sfs1 = sfs1.fit(X, y)Lưu ý là cả Backward Feature Elimination cùng Forward Feature Selection thường rất tốn thời gian và tài nguyên tính toán. Nên phương pháp chỉ thường xuyên chỉ áp dụng với các tập tài liệu nhỏ, rất hiếm feature.

Ngoài ra thư viện scikit-learn cũng tư vấn một vài method tự động cho nhằm chọn các feature giỏi như Univariate Selection, recursive feature elimination...

Với Feature Extraction, hãy sử dụng tập dữ liệu lớn hơn chút Fashion MNIST nhằm thử nghiệm. Tập tài liệu này bao gồm 70,000 ảnh với 60,000 ảnh train và 10,000 hình ảnh test.

2. Cách thức Linear

Với Feature extraction, bộ dữ liệu Fashion
MNIST được thực hiện để visualize tốt hơn. Vững chắc data này không thể lạ lẫm và hoàn toàn có thể tìm thấy trên google. Tuy vậy mình cũng để 1 file liên kết drive để tiện mang đến việc áp dụng với colab rộng nếu các bạn cần. Here

Factor Analysis: những biến được gộp thành nhóm bình thường theo correlation. Mỗi nhóm này được coi như là 1 trong những factor, với số lượng factor nhỏ hơn số chiều gốc của tập dữ liệu. Tuy vậy điểm trừ là hơi khó khăn quan tiếp giáp sự bóc tách biệt giữa các factor lúc visualize

import pandas as pdimport numpy as npfrom glob import globimport cv2# Load dataimages = images = np.array(images)image = <>for i in range(0,60000): img = images.flatten() image.append(img)image = np.array(image)train = pd.read_csv("train.csv") # Give the complete path of your train.csv filefeat_cols = < "pixel"+str(i) for i in range(image.shape<1>) >df = pd.Data
Frame(image,columns=feat_cols)df<"label"> = train<"label"># Factor Analysisfrom sklearn.decomposition import Factor
Analysis
FA = Factor
Analysis(n_components = 3).fit_transform(df.values)# Visualize%matplotlib inlineimport matplotlib.pyplot as pltplt.figure(figsize=(12,8))plt.title("Factor Analysis Components")plt.scatter(FA<:,0>, FA<:,1>)plt.scatter(FA<:,1>, FA<:,2>)plt.scatter(FA<:,2>,FA<:,0>)

*

Principal component analysis: aka PCA. Đây là 1 thuật toán unsupervised giúp bớt chiều dữ liệu và vẫn giữ được rất nhiều thông tin nhất bao gồm thể. Thường xuyên được sử dụng với hình trạng dữ liên tục: PCA xoay cùng chiếu điểm dữ liệu theo chiều tăng của phương sai
PCA hoàn toàn có thể hiểu là 1 quy trình thống kê trong các số ấy phép đổi khác trực giao tập dữ liệu nnn chiều thành nnn chiều principal component.PCA là thuật toán sút chiều con đường tính bằng phương pháp biến đổi các biến tương quan (p) trở thành những biến k không ràng buộc (với k

Tham khảo thêm bài bác này để hiểu rõ hơn về PCA. Nhưng nhìn tổng thể tóm tắt lại ý thiết yếu PCA:

Một principal component là tổng hợp tuyến tính của những biến
Các pricipal component được sinh sản thành với kim chỉ nam như sau
Principal component (đầu) nỗ lực biểu diễn phương sai lớn số 1 của dữ liệu. Vào đó khẳng định hướng biến hóa lớn tốt nhất của dữ liệu (aka dữ liệu tác động nhất). Biến hóa càng to thì lượng thông tin component biểu diễn được càng nhiều.Principal component tiếp theo sau sẽ cho thấy phương sai còn sót lại của tập tài liệu mà không tương quan với PC1 (hay correlation bởi 0) và do thế, vị trí hướng của 2 PC đã trực giao (hình ảnh).Principal component thứ cha và kế tiếp tương tự

*

from sklearn.decomposition import PCApca = PCA(n_components=4)pca_result = pca.fit_transform(df.values)plt.plot(range(4), pca.explained_variance_ratio_)plt.plot(range(4), np.cumsum(pca.explained_variance_ratio_))plt.title("Component-wise và Cumulative Explained Variance")

*

import seaborn as snsplt.style.use("fivethirtyeight")fig, axarr = plt.subplots(2, 2, figsize=(12, 8))sns.heatmap(pca.components_<0, :>.reshape(28, 84), ax=axarr<0><0>, cmap="gray_r")sns.heatmap(pca.components_<1, :>.reshape(28, 84), ax=axarr<0><1>, cmap="gray_r")sns.heatmap(pca.components_<2, :>.reshape(28, 84), ax=axarr<1><0>, cmap="gray_r")sns.heatmap(pca.components_<3, :>.reshape(28, 84), ax=axarr<1><1>, cmap="gray_r")axarr<0><0>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<0>*100),fontsize=12)axarr<0><1>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<1>*100),fontsize=12)axarr<1><0>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<2>*100),fontsize=12)axarr<1><1>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<3>*100),fontsize=12)axarr<0><0>.set_aspect("equal")axarr<0><1>.set_aspect("equal")axarr<1><0>.set_aspect("equal")axarr<1><1>.set_aspect("equal")plt.suptitle("4-Component PCA")

*

Linear Discriminatory Analysis: chuyên môn supervised, mục tiêu hướng tới việc giữ những nhất tính chất quyết định phân loại của những biến phụ thuộc. Thuật toán LDA tính toán khả năng phân biệt các lớp, sau đó tính khoảng cách giữa các mẫu của từng lớp với trung bình. Cuối cùng đưa tập tài liệu về chiều nhỏ tuổi hơn.

*

Singular Value Composition:. SVD trích xuất feature quan trọng nhất khỏi tập dữ liệu. Phương thức này khá thịnh hành vì dựa trên quy mô toán học tuyến tính. Nhìn chung SVD đang tận dụng trị riêng với vector riêng để khẳng định và bóc các biến thành 3 ma trận với mục đích thải trừ các feature ít quan trọng đặc biệt trong tập dữ liệu.

from sklearn.decomposition import Truncated
SVD svd = Truncated
SVD(n_components=3, random_state=226).fit_transform(df.values)plt.figure(figsize=(12,8))plt.title("SVD Components")plt.scatter(svd<:,0>, svd<:,1>)plt.scatter(svd<:,1>, svd<:,2>)plt.scatter(svd<:,2>,svd<:,0>)

*

Independent Component Analysis: ICA phương thức này dựa trên kim chỉ nan truyền ti cùng cũng là một trong một cách thức rất phổ biến. PCA đang tìm các yếu tố ít đối sánh trong lúc ICA chú ý vào các biến độc lập

from sklearn.decomposition import Fast
ICA ICA = Fast
ICA(n_components=3, random_state=12) X=ICA.fit_transform(df.values)plt.figure(figsize=(12,8))plt.title("ICA Components")plt.scatter(X<:,0>, X<:,1>)plt.scatter(X<:,1>, X<:,2>)plt.scatter(X<:,2>, X<:,0>)

*

3. Manifold learning hay non-linear method

Một phía tiếp cận không giống theo phi tuyến đường tính (hay dùng projection-phương pháp chiếu) là manifold learning. Rất có thể hiểu đơn giản dễ dàng là tận dụng tính năng hình học nhằm chiếu những điểm xuống chiều không gian thấp hơn mà vẫn duy trì được đặc thù của dữ liệu.

*

Isometric Feature Mapping (Isomap): phương pháp này bảo toàn được mối liên hệ của tập dữ liệu bằng phương pháp tạo ra tập dữ liệu embedded. Đầu tiên, thuật toán tạo ra mạng lấn cận, mong lượng khoảng cách trắc địa, khoảng cách ngắn độc nhất giữa nhì điểm trên bề mặt cong, giữa toàn bộ các điểm. Và cuối cùng, bởi việc áp dụng phân tung trị riêng rẽ của ma trận khoảng cách Geodesic, tập dữ liệu với số chiều nhỏ tuổi hơn được tạo ra ra

from sklearn import manifold trans_data = manifold.Isomap(n_neighbors=5, n_components=3, n_jobs=-1).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Decomposition using ISOMAP")plt.scatter(trans_data<:,0>, trans_data<:,1>)plt.scatter(trans_data<:,1>, trans_data<:,2>)plt.scatter(trans_data<:,2>, trans_data<:,0>)

*

t-Distributed Stochastic Neighbour (t-SNE): cực kỳ nhạy với các kết cấu local. T-SNE thường được sử dụng với mục đích visualize dữ liệu nhằm giúp đọc được nằm trong tính định hướng của tập dữ liệu. Tuy nhiên đây cũng là phương thức đòi hỏi hiệu năng giám sát và đo lường cao cùng cũng cần được áp dụng các kỹ thuật khác như missing values ratio hoặc scale feature.

from sklearn.manifold import TSNE tsne = TSNE(n_components=3, n_iter=300).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("t-SNE components")plt.scatter(tsne<:,0>, tsne<:,1>)plt.scatter(tsne<:,1>, tsne<:,2>)plt.scatter(tsne<:,2>, tsne<:,0>)

*

Locally linear embedding (LLE). Cũng như với ý tưởng tương tự Isomap, nhưng lại LLE tra cứu k-NN của những điểm; mong lượng từng điểm vector tài liệu như là tổ hợp của k
NN. Sau đó tạo ra các vector không nhiều chiều hơn nhằm "copy" lại những trọng số nghỉ ngơi trên. Nhìn chung cách thức này hoàn toàn có thể phát hiện được nhiều feature hơn phương pháp tuyến tính thông thường, và hiệu quả hơn các phương pháp khác.

from sklearn.manifold import Locally
Linear
Embeddingembedding = Locally
Linear
Embedding(n_components=3).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Local Linear Embeđing")plt.scatter(embedding<:,0>, embedding<:,1>)plt.scatter(embedding<:,1>, embedding<:,2>)plt.scatter(embedding<:,2>, embedding<:,0>)

*

Dùng Hessian matrix thì cũng sử dụng Locally
Linear
Embeg dding của sklearn, với ghi nhớ truyền thông số method="hessian" với tham số n_neighbors phải to hơn là ok.

from sklearn.manifold import Locally
Linear
Embedding
Heissian
Eigenmapping = Locally
Linear
Embedding(eigen_solver="dense", n_components=3, n_neighbors=10,method="hessian", random_state=226).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Heissian Eigenmapping")plt.scatter(Heissian
Eigenmapping<:,0>, Heissian
Eigenmapping<:,1>)plt.scatter(Heissian
Eigenmapping<:,1>, Heissian
Eigenmapping<:,2>)plt.scatter(Heissian
Eigenmapping<:,2>, Heissian
Eigenmapping<:,0>)

*

Spectral Embedding: thực hiện kỹ thụât spectral (phổ) nhằm mapping tài liệu xuống chiều tốt hơn, ưu tiên các điểm gần nhau hơn là đường tính cận nhau.

from sklearn.manifold import Spectral
Embeddingspectral
Embedding = Spectral
Embedding(n_components=3, random_state=226).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Spectral Embedding")plt.scatter(spectral
Embedding<:,0>, spectral
Embedding<:,1>)plt.scatter(spectral
Embedding<:,1>, spectral
Embedding<:,2>)plt.scatter(spectral
Embedding<:,2>, spectral
Embedding<:,0>)

*

Multidimensional scaling (MDS):

from sklearn.manifold import MDSmds = MDS(n_components=3, random_state=226).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("MDS")plt.scatter(mds<:,0>, mds<:,1>)plt.scatter(mds<:,1>, mds<:,2>)plt.scatter(mds<:,2>, mds<:,0>)

*

Summary

Không có phương thức nào là "bá đạo" cả, vấn đề chọn method cân xứng phụ thuộc không hề ít yếu tố, đặc thù tập tài liệu và phối hợp giữa những kỹ thuật khác nhau, từ kia tìm ra phương thức tốt nhất.

Và ngoài những điều trên, những kỹ thuật Dimensionality Reduction còn một vài hạn chế chung hoàn toàn có thể kể cho như: mất mát tài liệu khi bớt số chiều, trong nghệ thuật PCA, nhiều lúc không principal components cần thiết lại không được rõ ràng...

Xem thêm: Đề Thi Toán Lớp 5 Kì 2 Môn Toán Lớp 5 Năm 2022 Tải Nhiều, Đề Ôn Thi Học Kì 2 Môn Toán Lớp 5

Code Colab tham khảo.

Trên đó là những phần mình tìm hiểu và sưu tầm được.Xin cám ơn chúng ta đã nhiệt tình và theo dõi bài viết ^.^

References

<1> https://towardsdatascience.com/11-dimensionality-reduction-techniques-you-should-know-in-2021-dcb9500d388b

<2> https://towardsdatascience.com/dimensionality-reduction-for-machine-learning-80a46c2ebb7e

<3> https://machinelearningmastery.com/dimensionality-reduction-for-machine-learning/

<4> https://towardsdatascience.com/techniques-for-dimensionality-reduction-927a10135356

<5> https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/

<6> https://gist.github.com/Amitdb123/1e191a36d1f36b7bdfcf13375e63694b#file-dimensionality_reduction-py

<7> https://scikit-learn.org/stable/auto_examples/manifold/plot_compare_methods.html#sphx-glr-auto-examples-manifold-plot-compare-methods-py

<8> https://www.kaggle.com/mtax687/explorations-of-fashion-mnist-dataset

<9> https://www.analyticsvidhya.com/blog/2017/05/comprehensive-guide-to-linear-algebra/