Python中用PyTorch機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測(cè)銀行客戶流失模型|附代碼數(shù)據(jù)
閱讀全文:http://tecdat.cn/?p=8522
最近我們被客戶要求撰寫(xiě)關(guān)于神經(jīng)網(wǎng)絡(luò)的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
分類問(wèn)題屬于機(jī)器學(xué)習(xí)問(wèn)題的類別,其中給定一組特征,任務(wù)是預(yù)測(cè)離散值。分類問(wèn)題的一些常見(jiàn)示例是,預(yù)測(cè)腫瘤是否為癌癥,或者學(xué)生是否可能通過(guò)考試
在本文中,鑒于銀行客戶的某些特征,我們將預(yù)測(cè)客戶在6個(gè)月后是否可能離開(kāi)銀行。客戶離開(kāi)組織的現(xiàn)象也稱為客戶流失。因此,我們的任務(wù)是根據(jù)各種客戶特征預(yù)測(cè)客戶流失。
$ pip?install?pytorch
數(shù)據(jù)集
讓我們將所需的庫(kù)和數(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
庫(kù)的read_csv()
方法來(lái)導(dǎo)入包含我們的數(shù)據(jù)集的CSV文件。
dataset = pd.read_csv(r'E:Datasetscustomer_data.csv')
讓我們輸出數(shù)據(jù)集 :
dataset.shape
輸出:
(10000,?14)
輸出顯示該數(shù)據(jù)集具有1萬(wàn)條記錄和14列。我們可以使用head()
數(shù)據(jù)框的方法來(lái)輸出數(shù)據(jù)集的前五行。
dataset.head()
輸出:

您可以在我們的數(shù)據(jù)集中看到14列。根據(jù)前13列,我們的任務(wù)是預(yù)測(cè)第14列的值,即Exited
。
探索性數(shù)據(jù)分析
讓我們對(duì)數(shù)據(jù)集進(jìn)行一些探索性數(shù)據(jù)分析。我們將首先預(yù)測(cè)6個(gè)月后實(shí)際離開(kāi)銀行并使用餅圖進(jìn)行可視化的客戶比例。讓我們首先增加圖形的默認(rèn)繪圖大?。?/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%的客戶離開(kāi)了銀行。這里1代表客戶離開(kāi)銀行的情況,0代表客戶沒(méi)有離開(kāi)銀行的情況。讓我們繪制數(shù)據(jù)集中所有地理位置的客戶數(shù)量:

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

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

左右滑動(dòng)查看更多

01

02

03

04

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

輸出顯示,盡管法國(guó)客戶總數(shù)是西班牙和德國(guó)客戶總數(shù)的兩倍,但法國(guó)和德國(guó)客戶離開(kāi)銀行的客戶比例是相同的。同樣,德國(guó)和西班牙客戶的總數(shù)相同,但是離開(kāi)銀行的德國(guó)客戶數(shù)量是西班牙客戶的兩倍,這表明德國(guó)客戶在6個(gè)月后離開(kāi)銀行的可能性更大。
數(shù)據(jù)預(yù)處理
在訓(xùn)練PyTorch模型之前,我們需要預(yù)處理數(shù)據(jù)。如果查看數(shù)據(jù)集,您將看到它具有兩種類型的列:數(shù)值列和分類列。數(shù)字列包含數(shù)字信息。CreditScore
,Balance
,Age
等。類似地,Geography
和Gender
是分類列,因?yàn)樗鼈兒蟹诸愋畔?,如客戶的位置和性別。有幾列可以視為數(shù)字列和類別列。例如,該HasCrCard
列的值可以為1或0。但是,那HasCrCard
列包含有關(guān)客戶是否擁有信用卡的信息。
讓我們?cè)俅屋敵鰯?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
列,因?yàn)檫@些列的值是完全隨機(jī)的,并與輸出無(wú)關(guān)。例如,客戶的姓氏對(duì)客戶是否離開(kāi)銀行沒(méi)有影響。其中列的其余部分,Geography
,Gender
,HasCrCard
,和IsActiveMember
列可以被視為類別列。讓我們創(chuàng)建這些列的列表:除該列外,其余所有列均可視為數(shù)字列。
numerical_columns?= ['CreditScore',?'Age',?'Tenure',?'Balance',?'NumOfProducts',?'EstimatedSalary']
最后,輸出(Exited
列中的值)存儲(chǔ)在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ù)來(lái)做到這一點(diǎn),
現(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ù)類型更改為類別時(shí),該列中的每個(gè)類別都會(huì)分配一個(gè)唯一的代碼。例如,讓我們繪制列的前五行,Geography
并輸出前五行的代碼值:
輸出:
0 ? ?France1 ? ? Spain2 ? ?France3 ? ?France4 ? ? SpainName: Geography, dtype: category
Categories (3, object): [France, Germany, Spain]
以下腳本在該列的前五行中繪制了值的代碼Geography
:
輸出:
0 ? ?01 ? ?22 ? ?03 ? ?04 ? ?2dtype: int8
輸出顯示法國(guó)已編碼為0,西班牙已編碼為2。
將分類列與數(shù)字列分開(kāi)的基本目的是,可以將數(shù)字列中的值直接輸入到神經(jīng)網(wǎng)絡(luò)中。但是,必須首先將類別列的值轉(zhuǎn)換為數(shù)字類型。分類列中的值的編碼部分地解決了分類列的數(shù)值轉(zhuǎn)換的任務(wù)。
由于我們將使用PyTorch進(jìn)行模型訓(xùn)練,因此需要將分類列和數(shù)值列轉(zhuǎn)換為張量。首先讓我們將分類列轉(zhuǎn)換為張量。在PyTorch中,可以通過(guò)numpy數(shù)組創(chuàng)建張量。我們將首先將四個(gè)分類列中的數(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
對(duì)象。同樣,我們可以將數(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ù)集中六個(gè)數(shù)字列的值。最后一步是將輸出的numpy數(shù)組轉(zhuǎn)換為tensor
對(duì)象。輸出:
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)練模型之前,有一個(gè)非常重要的步驟。我們將分類列轉(zhuǎn)換為數(shù)值,其中唯一值由單個(gè)整數(shù)表示。例如,在該Geography
列中,我們看到法國(guó)用0表示,德國(guó)用1表示。我們可以使用這些值來(lái)訓(xùn)練我們的模型。但是,更好的方法是以N維向量的形式表示分類列中的值,而不是單個(gè)整數(shù)。
我們需要為所有分類列定義矢量大小。關(guān)于維數(shù)沒(méi)有嚴(yán)格的規(guī)定。定義列的嵌入大小的一個(gè)好的經(jīng)驗(yàn)法則是將列中唯一值的數(shù)量除以2(但不超過(guò)50)。例如,對(duì)于該Geography
列,唯一值的數(shù)量為3。該Geography
列的相應(yīng)嵌入大小將為3/2 = 1.5 = 2(四舍五入)。以下腳本創(chuàng)建一個(gè)元組,其中包含所有類別列的唯一值數(shù)量和維度大?。?/p>
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ù)對(duì)監(jiān)督型深度學(xué)習(xí)模型(例如我們?cè)诒疚闹虚_(kāi)發(fā)的模型)進(jìn)行訓(xùn)練,并在測(cè)試數(shù)據(jù)集上評(píng)估模型的性能。因此,我們需要將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,如以下腳本所示:
total_records = 10000....
我們的數(shù)據(jù)集中有1萬(wàn)條記錄,其中80%的記錄(即8000條記錄)將用于訓(xùn)練模型,而其余20%的記錄將用于評(píng)估模型的性能。注意,在上面的腳本中,分類和數(shù)字?jǐn)?shù)據(jù)以及輸出已分為訓(xùn)練集和測(cè)試集。為了驗(yàn)證我們已正確地將數(shù)據(jù)分為訓(xùn)練和測(cè)試集:
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ù)測(cè)模型
我們將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集,現(xiàn)在是時(shí)候定義訓(xùn)練模型了。為此,我們可以定義一個(gè)名為的類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
接下來(lái),要查找輸入層的大小,將類別列和數(shù)字列的數(shù)量加在一起并存儲(chǔ)在input_size
變量中。之后,for
循環(huán)迭代,并將相應(yīng)的層添加到all_layers
列表中。添加的層是:
Linear
:用于計(jì)算輸入和權(quán)重矩陣之間的點(diǎn)積ReLu
:用作激活函數(shù)BatchNorm1d
:用于對(duì)數(shù)字列應(yīng)用批量歸一化Dropout
:用于避免過(guò)擬合
在后for
循環(huán)中,輸出層被附加到的層的列表。由于我們希望神經(jīng)網(wǎng)絡(luò)中的所有層都按順序執(zhí)行,因此將層列表傳遞給nn.Sequential
該類。
接下來(lái),在該forward
方法中,將類別列和數(shù)字列都作為輸入傳遞。類別列的嵌入在以下幾行中進(jìn)行。
embeddings?=?[]
數(shù)字列的批量歸一化可通過(guò)以下腳本應(yīng)用:
``
x_numerical = self.batch_norm_num(x_numerical)
最后,將嵌入的分類列x
和數(shù)字列x_numerical
連接在一起,并傳遞給sequence?layers
。
訓(xùn)練模型
要訓(xùn)練模型,首先我們必須創(chuàng)建Model
在上一節(jié)中定義的類的對(duì)象。
您可以看到我們傳遞了分類列的嵌入大小,數(shù)字列的數(shù)量,輸出大?。ㄔ谖覀兊睦又袨?)以及隱藏層中的神經(jīng)元。您可以看到我們有三個(gè)分別具有200、100和50個(gè)神經(jīng)元的隱藏層。
讓我們輸出模型并查看:
print(model)
輸出:
Model(
?(all_embeddings): ModuleList(
...
?)
)
您可以看到,在第一線性層中,in_features
變量的值為11,因?yàn)槲覀冇?個(gè)數(shù)字列,并且類別列的嵌入維數(shù)之和為5,因此6 + 5 = 11。out_features
的值為2,因?yàn)槲覀冎挥?個(gè)可能的輸出。
在實(shí)際訓(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ù)來(lái)計(jì)算。每次迭代過(guò)程中的損失將添加到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
以下腳本繪制了各個(gè)時(shí)期的損失函數(shù):
plt.plot(range(epochs),?aggregated_losses)plt.ylabel('Loss')plt.xlabel('epoch');`
輸出:

輸出顯示,最初損失函數(shù)迅速降低。在250個(gè)步長(zhǎng)之后,損失幾乎沒(méi)有減少。
做出預(yù)測(cè)
最后一步是對(duì)測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè)。為此,我們只需要將categorical_test_data
和numerical_test_data
傳遞給model
該類。然后可以將返回的值與實(shí)際測(cè)試輸出值進(jìn)行比較。以下腳本對(duì)測(cè)試類進(jìn)行預(yù)測(cè),并輸出測(cè)試數(shù)據(jù)的交叉熵?fù)p失。
with torch.no_grad():
輸出:
Loss:?0.36855841
測(cè)試集上的損失為0.3685,比訓(xùn)練集上獲得的0.3465略多,這表明我們的模型有些過(guò)擬合。由于我們指定輸出層將包含2個(gè)神經(jīng)元,因此每個(gè)預(yù)測(cè)將包含2個(gè)值。例如,前5個(gè)預(yù)測(cè)值如下所示:
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ù)測(cè)的思想是,如果實(shí)際輸出為0,則索引0處的值應(yīng)大于索引1處的值,反之亦然。我們可以使用以下腳本檢索列表中最大值的索引:
y_val?= np.argmax(y_val, axis=1)
輸出:現(xiàn)在讓我們?cè)俅屋敵?code>y_val列表的前五個(gè)值:
print(y_val[:5])
輸出:
tensor([0,?0,?0,?0,?0])
由于在最初預(yù)測(cè)的輸出列表中,對(duì)于前五個(gè)記錄,零索引處的值大于第一索引處的值,因此可以在已處理輸出的前五行中看到0。
最后,我們可以使用從sklearn.metrics
模塊confusion_matrix
,accuracy_score
以及classification_report
類找到了準(zhǔn)確度,精密度和召回值,混淆矩陣。
`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é)果表明,我們的模型達(dá)到了84.65%的精度,考慮到我們隨機(jī)選擇神經(jīng)網(wǎng)絡(luò)模型的所有參數(shù)這一事實(shí),這非常令人印象深刻。我建議您嘗試更改模型參數(shù),例如訓(xùn)練/測(cè)試比例,隱藏層的數(shù)量和大小等,以查看是否可以獲得更好的結(jié)果。
結(jié)論
PyTorch是Facebook開(kāi)發(fā)的常用深度學(xué)習(xí)庫(kù),可用于各種任務(wù),例如分類,回歸和聚類。本文介紹了如何使用PyTorch庫(kù)對(duì)表格數(shù)據(jù)進(jìn)行分類。

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

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