Python中用PyTorch機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型|附代碼數(shù)據(jù)
閱讀全文:http://tecdat.cn/?p=8522
分類問題屬于機器學(xué)習(xí)問題的類別,其中給定一組特征,任務(wù)是預(yù)測離散值。分類問題的一些常見示例是,預(yù)測腫瘤是否為癌癥,或者學(xué)生是否可能通過考試。
在本文中,鑒于銀行客戶的某些特征,我們將預(yù)測客戶在6個月后是否可能離開銀行??蛻綦x開組織的現(xiàn)象也稱為客戶流失。因此,我們的任務(wù)是根據(jù)各種客戶特征預(yù)測客戶流失。
$ pip?install?pytorch
數(shù)據(jù)集
讓我們將所需的庫和數(shù)據(jù)集導(dǎo)入到我們的Python應(yīng)用程序中:
import torchimport torch.nn as nnimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns
%matplotlib inline
我們可以使用pandas
庫的read_csv()
方法來導(dǎo)入包含我們的數(shù)據(jù)集的CSV文件。
dataset = pd.read_csv(r'E:Datasetscustomer_data.csv')
讓我們輸出數(shù)據(jù)集 :
dataset.shape
輸出:
(10000,?14)
輸出顯示該數(shù)據(jù)集具有1萬條記錄和14列。我們可以使用head()
數(shù)據(jù)框的方法來輸出數(shù)據(jù)集的前五行。
dataset.head()
輸出:

您可以在我們的數(shù)據(jù)集中看到14列。根據(jù)前13列,我們的任務(wù)是預(yù)測第14列的值,即Exited
。
探索性數(shù)據(jù)分析
讓我們對數(shù)據(jù)集進行一些探索性數(shù)據(jù)分析。我們將首先預(yù)測6個月后實際離開銀行并使用餅圖進行可視化的客戶比例。讓我們首先增加圖形的默認繪圖大?。?/p>
fig_size = plt.rcParams["figure.figsize"]fig_size[0] = 10fig_size[1] = 8plt.rcParams["figure.figsize"] = fig_size
以下腳本繪制該Exited
列的餅圖。
dataset.Exited.value_counts().plot(kind='pie',?autopct='%1.0f%%', colors=['skyblue',?'orange'], explode=(0.05, 0.05))
輸出:

輸出顯示,在我們的數(shù)據(jù)集中,有20%的客戶離開了銀行。這里1代表客戶離開銀行的情況,0代表客戶沒有離開銀行的情況。讓我們繪制數(shù)據(jù)集中所有地理位置的客戶數(shù)量:

輸出顯示,幾乎一半的客戶來自法國,而西班牙和德國的客戶比例分別為25%。
點擊標題查閱往期內(nèi)容

用R語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例

左右滑動查看更多

01

02

03

04

現(xiàn)在,讓我們繪制來自每個唯一地理位置的客戶數(shù)量以及客戶流失信息。我們可以使用庫中的countplot()
函數(shù)seaborn
來執(zhí)行此操作。

輸出顯示,盡管法國客戶總數(shù)是西班牙和德國客戶總數(shù)的兩倍,但法國和德國客戶離開銀行的客戶比例是相同的。同樣,德國和西班牙客戶的總數(shù)相同,但是離開銀行的德國客戶數(shù)量是西班牙客戶的兩倍,這表明德國客戶在6個月后離開銀行的可能性更大。
數(shù)據(jù)預(yù)處理
在訓(xùn)練PyTorch模型之前,我們需要預(yù)處理數(shù)據(jù)。如果查看數(shù)據(jù)集,您將看到它具有兩種類型的列:數(shù)值列和分類列。數(shù)字列包含數(shù)字信息。CreditScore
,Balance
,Age
等。類似地,Geography
和Gender
是分類列,因為它們含有分類信息,如客戶的位置和性別。有幾列可以視為數(shù)字列和類別列。例如,該HasCrCard
列的值可以為1或0。但是,那HasCrCard
列包含有關(guān)客戶是否擁有信用卡的信息。
讓我們再次輸出數(shù)據(jù)集中的所有列,并找出哪些列可以視為數(shù)字列,哪些列應(yīng)該視為類別列。columns
數(shù)據(jù)框的屬性顯示所有列名稱:
Index(['RowNumber',?'CustomerId',?'Surname',?'CreditScore',?'Geography',?'Gender',?'Age',?'Tenure',?'Balance',?'NumOfProducts',?'HasCrCard',?'IsActiveMember',?'EstimatedSalary',?'Exited'], dtype='object')
從我們的數(shù)據(jù)列,我們將不使用的RowNumber
,CustomerId
以及Surname
列,因為這些列的值是完全隨機的,并與輸出無關(guān)。例如,客戶的姓氏對客戶是否離開銀行沒有影響。其中列的其余部分,Geography
,Gender
,HasCrCard
,和IsActiveMember
列可以被視為類別列。讓我們創(chuàng)建這些列的列表:除該列外,其余所有列均可視為數(shù)字列。
numerical_columns?= ['CreditScore',?'Age',?'Tenure',?'Balance',?'NumOfProducts',?'EstimatedSalary']
最后,輸出(Exited
列中的值)存儲在outputs
變量中。
我們已經(jīng)創(chuàng)建了分類,數(shù)字和輸出列的列表。但是,目前,分類列的類型不是分類的。您可以使用以下腳本檢查數(shù)據(jù)集中所有列的類型:
輸出:
RowNumber ? ? ? ? ? ?int64CustomerId ? ? ? ? ? int64Surname ? ? ? ? ? ? object
CreditScore ? ? ? ? ?int64Geography ? ? ? ? ? object
Gender ? ? ? ? ? ? ?object
Age ? ? ? ? ? ? ? ? ?int64Tenure ? ? ? ? ? ? ? int64Balance ? ? ? ? ? ?float64NumOfProducts ? ? ? ?int64HasCrCard ? ? ? ? ? ?int64IsActiveMember ? ? ? int64EstimatedSalary ? ?float64Exited ? ? ? ? ? ? ? int64dtype: object
您可以看到Geography
和Gender
列的類型是object,HasCrCard
和IsActive
列的類型是int64。我們需要將分類列的類型轉(zhuǎn)換為category
。我們可以使用astype()
函數(shù)來做到這一點,
現(xiàn)在,如果再次繪制數(shù)據(jù)集中各列的類型,您將看到以下結(jié)果:
輸出量
RowNumber ? ? ? ? ? ? int64CustomerId ? ? ? ? ? ?int64Surname ? ? ? ? ? ? ?object
CreditScore ? ? ? ? ? int64Geography ? ? ? ? ?category
Gender ? ? ? ? ? ? category
Age ? ? ? ? ? ? ? ? ? int64Tenure ? ? ? ? ? ? ? ?int64Balance ? ? ? ? ? ? float64NumOfProducts ? ? ? ? int64HasCrCard ? ? ? ? ?category
IsActiveMember ? ? category
EstimatedSalary ? ? float64Exited ? ? ? ? ? ? ? ?int64dtype: object
現(xiàn)在讓我們查看Geography
列中的所有類別:
Index(['France',?'Germany',?'Spain'], dtype='object')
當(dāng)您將列的數(shù)據(jù)類型更改為類別時,該列中的每個類別都會分配一個唯一的代碼。例如,讓我們繪制列的前五行,Geography
并輸出前五行的代碼值:
輸出:
0 ? ?France1 ? ? Spain2 ? ?France3 ? ?France4 ? ? SpainName: Geography, dtype: category
Categories (3, object): [France, Germany, Spain]
以下腳本在該列的前五行中繪制了值的代碼Geography
:
輸出:
0 ? ?01 ? ?22 ? ?03 ? ?04 ? ?2dtype: int8
輸出顯示法國已編碼為0,西班牙已編碼為2。
將分類列與數(shù)字列分開的基本目的是,可以將數(shù)字列中的值直接輸入到神經(jīng)網(wǎng)絡(luò)中。但是,必須首先將類別列的值轉(zhuǎn)換為數(shù)字類型。分類列中的值的編碼部分地解決了分類列的數(shù)值轉(zhuǎn)換的任務(wù)。
由于我們將使用PyTorch進行模型訓(xùn)練,因此需要將分類列和數(shù)值列轉(zhuǎn)換為張量。首先讓我們將分類列轉(zhuǎn)換為張量。在PyTorch中,可以通過numpy數(shù)組創(chuàng)建張量。我們將首先將四個分類列中的數(shù)據(jù)轉(zhuǎn)換為numpy數(shù)組,然后將所有列水平堆疊,如以下腳本所示:
geo = dataset['Geography'].cat.codes.values
...
上面的腳本輸出分類列中前十條記錄。輸出如下:輸出:
array([[0, 0, 1, 1], ? ? ? [2, 0, 0, 1], ? ? ? [0, 0, 1, 0], ? ? ? [0, 0, 0, 0], ? ? ? [2, 0, 1, 1], ? ? ? [2, 1, 1, 0], ? ? ? [0, 1, 1, 1], ? ? ? [1, 0, 1, 0], ? ? ? [0, 1, 0, 1], ? ? ? [0, 1, 1, 1]], dtype=int8)
現(xiàn)在要從上述numpy數(shù)組創(chuàng)建張量,您只需將數(shù)組傳遞給模塊的tensor
類torch
。
輸出:
tensor([[0, 0, 1, 1], ? ? ? ?[2, 0, 0, 1], ? ? ? ?[0, 0, 1, 0], ? ? ? ?[0, 0, 0, 0], ? ? ? ?[2, 0, 1, 1], ? ? ? ?[2, 1, 1, 0], ? ? ? ?[0, 1, 1, 1], ? ? ? ?[1, 0, 1, 0], ? ? ? ?[0, 1, 0, 1], ? ? ? ?[0, 1, 1, 1]])
在輸出中,您可以看到類別數(shù)據(jù)的numpy數(shù)組現(xiàn)在已轉(zhuǎn)換為tensor
對象。同樣,我們可以將數(shù)值列轉(zhuǎn)換為張量:
numerical_data = np.stack([dataset[col].values for col in numerical_columns], 1)
...
輸出:
tensor([[6.1900e+02, 4.2000e+01, 2.0000e+00, 0.0000e+00, 1.0000e+00, 1.0135e+05], ? ? ? ?[6.0800e+02, 4.1000e+01, 1.0000e+00, 8.3808e+04, 1.0000e+00, 1.1254e+05], ? ? ? ?[5.0200e+02, 4.2000e+01, 8.0000e+00, 1.5966e+05, 3.0000e+00, 1.1393e+05], ? ? ? ?[6.9900e+02, 3.9000e+01, 1.0000e+00, 0.0000e+00, 2.0000e+00, 9.3827e+04], ? ? ? ?[8.5000e+02, 4.3000e+01, 2.0000e+00, 1.2551e+05, 1.0000e+00, 7.9084e+04]])
在輸出中,您可以看到前五行,其中包含我們數(shù)據(jù)集中六個數(shù)字列的值。最后一步是將輸出的numpy數(shù)組轉(zhuǎn)換為tensor
對象。輸出:
tensor([1,?0,?1,?0,?0])
現(xiàn)在,讓我們繪制分類數(shù)據(jù),數(shù)值數(shù)據(jù)和相應(yīng)輸出的形狀:?輸出:
torch.Size([10000, 4])
torch.Size([10000, 6])
torch.Size([10000])
在訓(xùn)練模型之前,有一個非常重要的步驟。我們將分類列轉(zhuǎn)換為數(shù)值,其中唯一值由單個整數(shù)表示。例如,在該Geography
列中,我們看到法國用0表示,德國用1表示。我們可以使用這些值來訓(xùn)練我們的模型。但是,更好的方法是以N維向量的形式表示分類列中的值,而不是單個整數(shù)。
我們需要為所有分類列定義矢量大小。關(guān)于維數(shù)沒有嚴格的規(guī)定。定義列的嵌入大小的一個好的經(jīng)驗法則是將列中唯一值的數(shù)量除以2(但不超過50)。例如,對于該Geography
列,唯一值的數(shù)量為3。該Geography
列的相應(yīng)嵌入大小將為3/2 = 1.5 = 2(四舍五入)。以下腳本創(chuàng)建一個元組,其中包含所有類別列的唯一值數(shù)量和維度大小:
categorical_column_sizes = [len(dataset[column].cat.categories) for column in categorical_columns]
...
輸出:
[(3,?2), (2,?1), (2,?1), (2,?1)]
使用訓(xùn)練數(shù)據(jù)對監(jiān)督型深度學(xué)習(xí)模型(例如我們在本文中開發(fā)的模型)進行訓(xùn)練,并在測試數(shù)據(jù)集上評估模型的性能。因此,我們需要將數(shù)據(jù)集分為訓(xùn)練集和測試集,如以下腳本所示:
total_records = 10000....
我們的數(shù)據(jù)集中有1萬條記錄,其中80%的記錄(即8000條記錄)將用于訓(xùn)練模型,而其余20%的記錄將用于評估模型的性能。注意,在上面的腳本中,分類和數(shù)字數(shù)據(jù)以及輸出已分為訓(xùn)練集和測試集。為了驗證我們已正確地將數(shù)據(jù)分為訓(xùn)練和測試集:
print(len(categorical_train_data))print(len(numerical_train_data))print(len(train_outputs))print(len(categorical_test_data))print(len(numerical_test_data))print(len(test_outputs))
輸出:
800080008000200020002000
創(chuàng)建預(yù)測模型
我們將數(shù)據(jù)分為訓(xùn)練集和測試集,現(xiàn)在是時候定義訓(xùn)練模型了。為此,我們可以定義一個名為的類Model
,該類將用于訓(xùn)練模型??聪旅娴哪_本:
class Model(nn.Module): ? ?def __init__(self, embedding_size, num_numerical_cols, output_size, layers, p=0.4): ? ? ? ?super().__init__() ? ? ? ?self.all_embeddings = nn.ModuleList([nn.Embedding(ni, nf) for ni, nf in embedding_size]) ? ? ? ?self.embedding_dropout = nn.Dropout(p) ? ? ? ?self.batch_norm_num = nn.BatchNorm1d(num_numerical_cols) ? ? ? ?return x
接下來,要查找輸入層的大小,將類別列和數(shù)字列的數(shù)量加在一起并存儲在input_size
變量中。之后,for
循環(huán)迭代,并將相應(yīng)的層添加到all_layers
列表中。添加的層是:
Linear
:用于計算輸入和權(quán)重矩陣之間的點積ReLu
:用作激活函數(shù)BatchNorm1d
:用于對數(shù)字列應(yīng)用批量歸一化Dropout
:用于避免過擬合
在后for
循環(huán)中,輸出層被附加到的層的列表。由于我們希望神經(jīng)網(wǎng)絡(luò)中的所有層都按順序執(zhí)行,因此將層列表傳遞給nn.Sequential
該類。
接下來,在該forward
方法中,將類別列和數(shù)字列都作為輸入傳遞。類別列的嵌入在以下幾行中進行。
embeddings?=?[]
數(shù)字列的批量歸一化可通過以下腳本應(yīng)用:
``
x_numerical = self.batch_norm_num(x_numerical)
最后,將嵌入的分類列x
和數(shù)字列x_numerical
連接在一起,并傳遞給sequence?layers
。
訓(xùn)練模型
要訓(xùn)練模型,首先我們必須創(chuàng)建Model
在上一節(jié)中定義的類的對象。
您可以看到我們傳遞了分類列的嵌入大小,數(shù)字列的數(shù)量,輸出大?。ㄔ谖覀兊睦又袨?)以及隱藏層中的神經(jīng)元。您可以看到我們有三個分別具有200、100和50個神經(jīng)元的隱藏層。
讓我們輸出模型并查看:
print(model)
輸出:
Model(
?(all_embeddings): ModuleList(
...
?)
)
您可以看到,在第一線性層中,in_features
變量的值為11,因為我們有6個數(shù)字列,并且類別列的嵌入維數(shù)之和為5,因此6 + 5 = 11。out_features
的值為2,因為我們只有2個可能的輸出。
在實際訓(xùn)練模型之前,我們需要定義損失函數(shù)和將用于訓(xùn)練模型的優(yōu)化器。以下腳本定義了損失函數(shù)和優(yōu)化器:
loss_function?= nn.CrossEntropyLoss()
現(xiàn)在,我們訓(xùn)練模型。以下腳本訓(xùn)練模型:
epochs = 300aggregated_losses = []for i in range(epochs):print(f'epoch: {i:3} loss: {single_loss.item():10.10f}')
神經(jīng)元元數(shù)設(shè)置為300,這意味著要訓(xùn)練模型,完整的數(shù)據(jù)集將使用300次。for
為每次迭代期間循環(huán)的執(zhí)行方式,損失是使用損耗函數(shù)來計算。每次迭代過程中的損失將添加到aggregated_loss
列表中。
上面腳本的輸出如下:
epoch:?1?loss:?0.71847951epoch: 26 loss: 0.57145703epoch: 51 loss: 0.48110831epoch: 76 loss: 0.42529839epoch: 101 loss: 0.39972275epoch: 126 loss: 0.37837571epoch: 151 loss: 0.37133673epoch: 176 loss: 0.36773482epoch: 201 loss: 0.36305946epoch: 226 loss: 0.36079505epoch: 251 loss: 0.35350436epoch: 276 loss: 0.35540250epoch:?300?loss:?0.3465710580
以下腳本繪制了各個時期的損失函數(shù):
plt.plot(range(epochs),?aggregated_losses)plt.ylabel('Loss')plt.xlabel('epoch');`
輸出:

輸出顯示,最初損失函數(shù)迅速降低。在250個步長之后,損失幾乎沒有減少。
做出預(yù)測
最后一步是對測試數(shù)據(jù)進行預(yù)測。為此,我們只需要將categorical_test_data
和numerical_test_data
傳遞給model
該類。然后可以將返回的值與實際測試輸出值進行比較。以下腳本對測試類進行預(yù)測,并輸出測試數(shù)據(jù)的交叉熵損失。
with torch.no_grad():
輸出:
Loss:?0.36855841
測試集上的損失為0.3685,比訓(xùn)練集上獲得的0.3465略多,這表明我們的模型有些過擬合。由于我們指定輸出層將包含2個神經(jīng)元,因此每個預(yù)測將包含2個值。例如,前5個預(yù)測值如下所示:
print(y_val[:5])
輸出:
tensor([[ 1.2045, -1.3857], ? ? ? ?[ 1.3911, -1.5957], ? ? ? ?[ 1.2781, -1.3598], ? ? ? ?[ 0.6261, -0.5429], ? ? ? ?[ 2.5430, -1.9991]])
這種預(yù)測的思想是,如果實際輸出為0,則索引0處的值應(yīng)大于索引1處的值,反之亦然。我們可以使用以下腳本檢索列表中最大值的索引:
y_val?= np.argmax(y_val, axis=1)
輸出:現(xiàn)在讓我們再次輸出y_val
列表的前五個值:
print(y_val[:5])
輸出:
tensor([0,?0,?0,?0,?0])
由于在最初預(yù)測的輸出列表中,對于前五個記錄,零索引處的值大于第一索引處的值,因此可以在已處理輸出的前五行中看到0。
最后,我們可以使用從sklearn.metrics
模塊confusion_matrix
,accuracy_score
以及classification_report
類找到了準確度,精密度和召回值,混淆矩陣。
`from sklearn.metrics import classification_report, confusion_matrix, accuracy_scoreprint(confusion_matrix(test_outputs,y_val))print(classification_report(test_outputs,y_val))print(accuracy_score(test_outputs, y_val))`
輸出:
[[1527 83][ 224 166]]
? ? ? ? ?precision ? ?recall ?f1-score ? support ? ? ? 0 ? ? ? 0.87 ? ? ?0.95 ? ? ?0.91 ? ? ?1610
? ? ? 1 ? ? ? 0.67 ? ? ?0.43 ? ? ?0.52 ? ? ? 390
micro avg 0.85 0.85 0.85 2000macro avg 0.77 0.69 0.71 2000weighted avg 0.83 0.85 0.83 20000.8465`
輸出結(jié)果表明,我們的模型達到了84.65%的精度,考慮到我們隨機選擇神經(jīng)網(wǎng)絡(luò)模型的所有參數(shù)這一事實,這非常令人印象深刻。我建議您嘗試更改模型參數(shù),例如訓(xùn)練/測試比例,隱藏層的數(shù)量和大小等,以查看是否可以獲得更好的結(jié)果。
結(jié)論
PyTorch是Facebook開發(fā)的常用深度學(xué)習(xí)庫,可用于各種任務(wù),例如分類,回歸和聚類。本文介紹了如何使用PyTorch庫對表格數(shù)據(jù)進行分類。

點擊文末?“閱讀原文”
獲取全文完整資料。
本文選自《Python中用PyTorch機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型》。

點擊標題查閱往期內(nèi)容
R語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例數(shù)據(jù)分析可視化
Python使用神經(jīng)網(wǎng)絡(luò)進行簡單文本分類
Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測股票市場價格時間序列和MSE評估準確性
【視頻】Python用LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)對不穩(wěn)定降雨量時間序列進行預(yù)測分析|數(shù)據(jù)分享
數(shù)據(jù)分享|R語言用Keras長短期記憶LSTM神經(jīng)網(wǎng)絡(luò)分類分析問答文本數(shù)據(jù)
Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測股票市場價格時間序列和MSE評估準確性
數(shù)據(jù)分享|PYTHON用KERAS的LSTM神經(jīng)網(wǎng)絡(luò)進行時間序列預(yù)測天然氣價格例子
Python對商店數(shù)據(jù)進行l(wèi)stm和xgboost銷售量時間序列建模預(yù)測分析
Matlab用深度學(xué)習(xí)長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對文本數(shù)據(jù)進行分類
RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長短期記憶網(wǎng)絡(luò)實現(xiàn)時間序列長期利率預(yù)測
結(jié)合新冠疫情COVID-19股票價格預(yù)測:ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時間序列分析
深度學(xué)習(xí):Keras使用神經(jīng)網(wǎng)絡(luò)進行簡單文本分類分析新聞組數(shù)據(jù)
用PyTorch機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型
PYTHON用LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)的參數(shù)優(yōu)化方法預(yù)測時間序列洗發(fā)水銷售數(shù)據(jù)
Python用Keras神經(jīng)網(wǎng)絡(luò)序列模型回歸擬合預(yù)測、準確度檢查和結(jié)果可視化
Python用LSTM長短期記憶神經(jīng)網(wǎng)絡(luò)對不穩(wěn)定降雨量時間序列進行預(yù)測分析
R語言中的神經(jīng)網(wǎng)絡(luò)預(yù)測時間序列:多層感知器(MLP)和極限學(xué)習(xí)機(ELM)數(shù)據(jù)分析報告
R語言深度學(xué)習(xí):用keras神經(jīng)網(wǎng)絡(luò)回歸模型預(yù)測時間序列數(shù)據(jù)
Matlab用深度學(xué)習(xí)長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對文本數(shù)據(jù)進行分類
R語言KERAS深度學(xué)習(xí)CNN卷積神經(jīng)網(wǎng)絡(luò)分類識別手寫數(shù)字圖像數(shù)據(jù)(MNIST)
MATLAB中用BP神經(jīng)網(wǎng)絡(luò)預(yù)測人體脂肪百分比數(shù)據(jù)
Python中用PyTorch機器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測銀行客戶流失模型
R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進行回歸數(shù)據(jù)分析
SAS使用鳶尾花(iris)數(shù)據(jù)集訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)(ANN)模型
【視頻】R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進行回歸數(shù)據(jù)分析
Python使用神經(jīng)網(wǎng)絡(luò)進行簡單文本分類
R語言用神經(jīng)網(wǎng)絡(luò)改進Nelson-Siegel模型擬合收益率曲線分析
R語言基于遞歸神經(jīng)網(wǎng)絡(luò)RNN的溫度時間序列預(yù)測
R語言神經(jīng)網(wǎng)絡(luò)模型預(yù)測車輛數(shù)量時間序列
R語言中的BP神經(jīng)網(wǎng)絡(luò)模型分析學(xué)生成績
matlab使用長短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對序列數(shù)據(jù)進行分類
R語言實現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測和結(jié)果可視化
用R語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例
使用PYTHON中KERAS的LSTM遞歸神經(jīng)網(wǎng)絡(luò)進行時間序列預(yù)測
python用于NLP的seq2seq模型實例:用Keras實現(xiàn)神經(jīng)網(wǎng)絡(luò)機器翻譯
用于NLP的Python:使用Keras的多標簽文本LSTM神經(jīng)網(wǎng)絡(luò)分類