机器学习算法应用——神经网络回归任务、神经网络分类任务

神经网络回归任务(4-3)

神经网络回归任务,通常指的是使用神经网络模型进行回归分析。回归分析是一种统计学方法,用于研究一个或多个自变量(预测变量)与一个因变量(响应变量)之间的关系。神经网络回归模型结合了神经网络和回归分析的优点,能够处理复杂的非线性关系,并提供灵活的模型结构。

神经网络回归模型(如Quantile Regression Neural Network, QRNN)由Taylor于2000年提出,是一种非参数非线性方法。它不仅可以揭示响应变量的整个条件分布,还可以模拟金融系统等领域的非线性特征。神经网络回归模型的研究已经扩展到了多个领域,包括金融、电力、气象等,并取得了较好的研究成果。

在神经网络回归任务中,通常包括以下几个步骤:

  1. 数据准备:收集具有自变量和因变量标签的数据集,并进行必要的数据预处理和特征工程。
  2. 模型构建:选择适当的神经网络结构,并定义模型的参数和损失函数。
  3. 模型训练:使用训练数据对神经网络进行训练,通过反向传播算法和梯度下降等方法优化模型的参数。
  4. 模型评估:使用测试数据对训练好的神经网络进行评估,计算预测误差和其他性能指标。
  5. 模型应用:将训练好的神经网络应用于实际问题中,进行预测和分析。

需要注意的是,神经网络回归模型在处理非线性关系时具有很强的能力,但也可能存在过拟合和解释性不足的问题。因此,在实际应用中需要根据具体问题和数据集的特点选择合适的模型和参数,并进行充分的验证和测试。

  1. 数据
datepricebedroomsbathroomssqft_livingsqft_lotfloorswaterfrontviewconditionsqft_abovesqft_basementyr_builtyr_renovatedstreetcitystatezipcountry
2014/5/2 0:0031300031.5134079121.5003134001955200518810 Densmore Ave NShorelineWA 98133USA
2014/5/2 0:00238400052.5365090502045337028019210709 W Blaine StSeattleWA 98119USA
2014/5/2 0:00342000321930119471004193001966026206-26214 143rd Ave SEKentWA 98042USA
2014/5/2 0:0042000032.252000803010041000100019630857 170th Pl NEBellevueWA 98008USA
2014/5/2 0:0055000042.519401050010041140800197619929105 170th Ave NERedmondWA 98052USA
2014/5/2 0:004900002188063801003880019381994522 NE 88th StSeattleWA 98115USA
2014/5/2 0:003350002213502560100313500197602616 174th Ave NERedmondWA 98052USA
2014/5/2 0:0048200042.52710358682003271001989023762 SE 253rd PlMaple ValleyWA 98038USA
2014/5/2 0:0045250032.5243088426100415708601985046611-46625 SE 129th StNorth BendWA 98045USA
2014/5/2 0:0064000042152062001.500315200194520106811 55th Ave NESeattleWA 98115USA
2014/5/2 0:0046300031.751710732010031710019481994Burke-Gilman TrailLake Forest ParkWA 98155USA
2014/5/2 0:00140000042.5292040001.500519101010190919883838-4098 44th Ave NESeattleWA 98105USA
2014/5/2 0:0058850031.7523301489210031970360198001833 220th Pl NESammamishWA 98074USA
2014/5/2 0:003650003110906435100410900195520092504 SW Portland CtSeattleWA 98106USA
2014/5/2 0:00120000052.75291094801.500329100193919693534 46th Ave NESeattleWA 98105USA
2014/5/2 0:0024250031.5120097201004120001965014034 SE 201st StKentWA 98042USA
2014/5/2 0:0041900031.5157067001004157001956015424 SE 9th StBellevueWA 98007USA
2014/5/2 0:0036750043311072312003311001997011224 SE 306th PlAuburnWA 98092USA
2014/5/2 0:0025795031.7513705858100313700198720001605 S 245th PlDes MoinesWA 98198USA
2014/5/2 0:0027500031.51180102771003118001983200912425 415th Ave SENorth BendWA 98045USA
2014/5/2 0:0075000031.7522401057820051550690192303225 NE 92nd StSeattleWA 98115USA
2014/5/2 0:004350004114508800100414500195419793922 154th Ave SEBellevueWA 98006USA
2014/5/2 0:0062600032.25175015722.50031470280200503140 Franklin Ave ESeattleWA 98102USA
2014/5/2 0:0061250042.52730122612003273001991010212 NE 156th PlBothellWA 98011USA
2014/5/2 0:0049500041.751600638010031130470195919892021 NE 100th StSeattleWA 98125USA
2014/5/2 0:0028500032.5209010834100413607301987027736 23rd Avenue SouthFederal WayWA 98003USA
2014/5/2 0:0061500031.7523607291100413601000194808436-8438 41st Ave SWSeattleWA 98136USA
2014/5/2 0:0069800042.252200112501.50051300900192001036 4th StKirklandWA 98033USA
2014/5/2 0:0067500052.52820675182003282001979201423525 SE 32nd WayIssaquahWA 98029USA
2014/5/2 0:0079000032.52600475010041700900195119993314 NW 75th StSeattleWA 98117USA
2014/5/2 0:0038250041.75156087001004156001967014104 119th Ave NEKirklandWA 98034USA
2014/5/2 0:0049995042.528603345200321906702004200320120 137th Ave NEWoodinvilleWA 98072USA
2014/5/2 0:0065000042182050001.50131640180194520107201-7399 55th Ave NESeattleWA 98115USA
2014/5/2 0:0062500042.5282084082003282002014017052 4th Ave NEShorelineWA 98155USA
2014/5/2 0:0040000042.53630428841.500323001330197920145172-5198 Heather Ave SEAuburnWA 98092USA
2014/5/2 0:0060400032.53240331512023324001995030822 36th Ct SWFederal WayWA 98023USA
2014/5/2 0:0044000021800485010048000194404801-4899 6th Ave NWSeattleWA 98107USA
2014/5/2 0:0028720033185019966100410907601992023017 SE 281st CtMaple ValleyWA 98038USA
2014/5/2 0:0040300032196013100102516503101957017825 4th Ave SWNormandy ParkWA 98166USA
2014/5/2 0:0075000032.52390655010241440950195520093628 59th Ave SWSeattleWA 98116USA
2014/5/2 0:0033500032.25158016215100415800197820004460 332nd Ave SEFall CityWA 98024USA
2014/5/2 0:002600004214808625100414800197402019 Aberdeen Pl SERentonWA 98055USA
2014/5/2 0:003085002185061741004850019501983121 NE 147th StShorelineWA 98155USA
2014/5/2 0:0043995032.517702875200317700199020094458 51st Ave SWSeattleWA 98116USA
2014/5/2 0:002350002112109400100212100194907542 21st Ave SWSeattleWA 98106USA
2014/5/2 0:0031500031116091801003116001968199715804 198th Pl NEWoodinvilleWA 98077USA
2014/5/2 0:0043750032.251970351002004197001977026069 SE 154th StIssaquahWA 98027USA
2014/5/2 0:0040750032.5193010460200319300199604314 NE 6th PlRentonWA 98059USA
2014/5/2 0:0044570032.512701180300312700200102640 NW 56th StSeattleWA 98107USA
2014/5/2 0:0083800042.53310429982003331002001015712 NE 136th PlRedmondWA 98052USA
2014/5/2 0:0063000042.752710372772003271002000026429 SE 154th PlIssaquahWA 98027USA
2014/5/2 0:0055000031.752910352001.500329100197920143923 229th Pl SESammamishWA 98075USA
2014/5/2 0:0080500032271045001.50041880830192906222 30th Ave NESeattleWA 98115USA
2014/5/2 0:0028400031.751800231031003180001968199732418 NE 50th StCarnationWA 98014USA
2014/5/2 0:0047000052.522109655100314607501976019334 89th Ave NEBothellWA 98011USA
2014/5/2 0:0043000041.519201000010041070850195419794071 156th Ave SEBellevueWA 98006USA
2014/5/2 0:0049150041.7521901254521023219001968199736850 204th Ave SEAuburnWA 98092USA
2014/5/2 0:0078500053.25366011995202336600200607425 Snowberry Ave SESnoqualmieWA 98065USA
2014/5/2 0:0038500033.251320132720031040280200803400 21st Ave WSeattleWA 98199USA
2014/5/2 0:0029500022.51630136820031280350200905944-6082 Delridge Way SWSeattleWA 98106USA
2014/5/2 0:0055500042.5331065002003331002012191235229 SE Terrace StSnoqualmieWA 98065USA
2014/5/2 0:0045999032.5268055392003268002013192313800 453rd Ave SENorth BendWA 98045USA
2014/5/2 0:0062500043.25273054014100315601170200709927 174th Ave SERentonWA 98059USA
2014/5/2 0:0030000032.5254050502003254002006029734 215th Terrace SEKentWA 98042USA
2014/5/3 0:0062500042.7529206605200329200201219125608 NE 5th CirRentonWA 98059USA
2014/5/3 0:0055300021900500010039000194408053 29th Ave NWSeattleWA 98117USA
2014/5/3 0:0037988032.5165014054100411305201986013256 242nd Pl SEIssaquahWA 98027USA
2014/5/3 0:003100003110109945100410100197307528 N Fork Rd SESnoqualmieWA 98065USA
2014/5/4 0:0077500022.5268073921003268002004200313134 234th Ct NERedmondWA 98053USA
2014/5/4 0:0036500032.522007350100515706301988013420 SE 182nd StRentonWA 98058USA
2014/5/4 0:0033195042.5253099332023201052019902009925 48th CtAuburnWA 98092USA
2014/5/4 0:0078350032.5285071302003199086019800151 Euclid AveSeattleWA 98122USA
2014/5/4 0:00628000422280601010031140114019002005205-206 Euclid AveSeattleWA 98122USA
2014/5/5 0:0056000032.5190087442003190001987200022314 NE 11th PlSammamishWA 98074USA
2014/5/5 0:00900000311330779721003133001928195413615 NE 100th StKirklandWA 98033USA
2014/5/5 0:00531000231270117520031110160200001411 N 48th StSeattleWA 98103USA
2014/5/5 0:0083100043217040002004161056019822011120 31st Ave ESeattleWA 98112USA
2014/5/5 0:0078000042.52730102812023273001996023140 NE 14th CtSammamishWA 98074USA
2014/5/5 0:0075500042.5212010202100416205001960200112645 SE 27th StBellevueWA 98005USA
2014/5/5 0:0070538032.524904343200324900200303187 NE Larkspur LnIssaquahWA 98029USA
2014/5/5 0:0062700042.2519907712100312107801973201318915 SE 42nd PlIssaquahWA 98027USA
2014/5/5 0:008650004336909892200336900199820061765 267th Ct SESammamishWA 98075USA
  1. 使用留出法划分数据集,训练集:测试集为7:3
# 使用留出法划分数据集,训练集:测试集为7:3
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  1. 使用多层感知机回归模型对训练集进行训练
# 初始化多层感知机回归模型,并设置参数
model = MLPRegressor(max_iter=1000, random_state=42, hidden_layer_sizes=(100,))
  1. 使用训练好的模型对测试集进行预测并输出预测结果模型的MSE和MAE
# 对训练集进行训练
model.fit(X_train, y_train)

# 使用训练好的模型对测试集进行预测
y_pred = model.predict(X_test)

# 计算模型的均方误差(MSE)和平均绝对误差(MAE)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)

# 输出预测结果和模型的MSE和MAE
print("预测结果:", y_pred)
print("模型的均方误差(MSE):", mse)
print("模型的平均绝对误差(MAE):", mae)
  1. 使用训练好的模型对如下数据的房价进行预测并输出结果。
# 创建新数据
new_data = pd.DataFrame([[3.0, 2.5, 1490, 8102, 2.0, 0, 0, 4, 1490, 0, 1990, 0]], columns=feature_names)

# 使用训练好的模型对提供的数据进行预测
predicted_price = model.predict(new_data)
print("提供的数据的房价预测结果:", predicted_price)

数据:[3.0,2.5,1490,8102,2.0,0,0,4,1490,0,1990,0]

 完整代码:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error

# 读取数据
df = pd.read_csv('house-price.csv')
df = df.drop(columns=['date', 'street', 'city', 'statezip', 'country'])

# 设置特征名称
feature_names = ['bedrooms', 'bathrooms', 'sqft_living', 'sqft_lot', 'floors', 'waterfront', 'view', 'condition', 'sqft_above', 'sqft_basement', 'yr_built', 'yr_renovated']
X = df[feature_names]
y = df['price']

# 使用留出法划分数据集,训练集:测试集为7:3
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 初始化多层感知机回归模型,并设置参数
model = MLPRegressor(max_iter=1000, random_state=42, hidden_layer_sizes=(100,))

# 对训练集进行训练
model.fit(X_train, y_train)

# 使用训练好的模型对测试集进行预测
y_pred = model.predict(X_test)

# 计算模型的均方误差(MSE)和平均绝对误差(MAE)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)

# 输出预测结果和模型的MSE和MAE
print("预测结果:", y_pred)
print("模型的均方误差(MSE):", mse)
print("模型的平均绝对误差(MAE):", mae)

# 创建新数据
new_data = pd.DataFrame([[3.0, 2.5, 1490, 8102, 2.0, 0, 0, 4, 1490, 0, 1990, 0]], columns=feature_names)

# 使用训练好的模型对提供的数据进行预测
predicted_price = model.predict(new_data)
print("提供的数据的房价预测结果:", predicted_price)

 

5.神经网络分类任务(4-3)

神经网络分类任务是指利用神经网络模型对输入数据进行分类。在分类任务中,神经网络通过学习输入数据中的特征和模式,将输入数据划分为不同的类别。这些类别可以是预定义的,也可以是神经网络在训练过程中自动学习得到的。

神经网络分类任务通常包括以下几个步骤:

  1. 数据准备:收集具有标签(即类别)的数据集,并进行必要的数据预处理和特征提取。
  2. 神经网络设计:选择合适的神经网络结构,如卷积神经网络(CNN)、循环神经网络(RNN)、递归神经网络(RNNs的一种)或图神经网络(GNN)等,并确定网络的层数、节点数、激活函数等参数。
  3. 训练神经网络:使用带有标签的训练数据对神经网络进行训练。在训练过程中,神经网络会学习输入数据中的特征和模式,并调整网络参数以最小化预测误差。
  4. 评估和优化:使用测试数据对训练好的神经网络进行评估,计算分类准确率、召回率、F1分数等指标。根据评估结果对神经网络进行优化,如调整网络结构、改变学习率等。
  5. 部署和应用:将训练好的神经网络部署到实际应用中,对新的输入数据进行分类和预测。

在神经网络分类任务中,不同的神经网络结构适用于不同的数据类型和任务需求。例如,卷积神经网络在图像分类任务中表现出色,而循环神经网络则更适合处理序列数据(如文本、语音等)。图神经网络则特别适用于处理图结构数据,如社交网络、蛋白质结构等。

需要注意的是,神经网络分类任务的性能受到多种因素的影响,包括数据集的质量、网络结构的选择、参数的调整等。因此,在实际应用中需要根据具体情况进行选择和调整,以获得最佳的分类性能。

  1. 数据
企业编号X1X2X3Y
1-62.8-89.51.70
23.3-3.51.10
3-120.8-103.22.50
4-18.1-28.81.10
5-3.8-50.60.90
64316.41.31
747161.91
8-3.342.71
93520.81.91
1046.712.60.91
11-61.2-56.21.70
12-20.3-17.410
13-194.5-25.80.50
1420.8-4.310
15-106.1-22.91.50
1620.812.52.41
173323.61.51
1826.110.42.11
1968.613.81.61
2037.333.43.51
21-49.2-17.20.3
22-19.2-36.70.8
2340.65.81.8
2434.626.41.8
2519.926.72.3
  1. 用1-10行数据作为训练集,用11-20行数据作为测试集
# 加载数据
df = pd.read_excel('企业贷款审批数据表.xlsx')  # 请替换成你的数据文件路径

# 划分训练集和测试集
train_data = df.iloc[0:17]  # 使用1-10行数据作为训练集
test_data = df.iloc[17:20]  # 使用11-20行数据作为测试集

# 特征和标签
X_train = train_data.drop(columns=['Y'])  # 特征
y_train = train_data['Y']  # 标签
X_test = test_data.drop(columns=['Y'])  # 特征
y_test = test_data['Y']  # 标签
  1. 使用多层感知机分类模型对训练集进行训练
# 初始化多层感知机分类模型
model = MLPClassifier(max_iter=1000, random_state=42)

# 训练模型
model.fit(X_train, y_train)
  1. 使用训练好的模型对测试集进行预测并输出预测结果模型准确度
# 对测试集进行预测
y_pred = model.predict(X_test)

# 计算模型准确度
accuracy = accuracy_score(y_test, y_pred)
print("模型准确度:", accuracy)

  1. 使用模型对21-25行数据的贷款申请进行评估,输出评估结果(1为同意,0为拒绝)。
# 准备新数据
new_data = df.iloc[20:25].drop(columns=['Y'])

# 使用训练好的模型进行评估
evaluation_result = model.predict(new_data)
print("评估结果:", evaluation_result)

完整代码:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score

# 加载数据
df = pd.read_excel('企业贷款审批数据表.xlsx')  # 请替换成你的数据文件路径

# 划分训练集和测试集
train_data = df.iloc[0:17]  # 使用1-10行数据作为训练集
test_data = df.iloc[17:20]  # 使用11-20行数据作为测试集

# 特征和标签
X_train = train_data.drop(columns=['Y'])  # 特征
y_train = train_data['Y']  # 标签
X_test = test_data.drop(columns=['Y'])  # 特征
y_test = test_data['Y']  # 标签

# 初始化多层感知机分类模型
model = MLPClassifier(max_iter=1000, random_state=42)

# 训练模型
model.fit(X_train, y_train)

# 对测试集进行预测
y_pred = model.predict(X_test)

# 计算模型准确度
accuracy = accuracy_score(y_test, y_pred)
print("模型准确度:", accuracy)

# 准备新数据
new_data = df.iloc[20:25].drop(columns=['Y'])

# 使用训练好的模型进行评估
evaluation_result = model.predict(new_data)
print("评估结果:", evaluation_result)

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
卷积神经网络(Convolutional Neural Network,CNN)是一种机器学习算法,其主要应用于图像识别、计算机视觉和模式识别等领域。CNN模型的设计灵感来源于科学家们对于生物视觉系统的研究。该算法的核心概念是通过卷积层、池化层和全连接层的组合,对输入的图像进行特征提取和分类。 在CNN中,卷积层是该模型的主要组成部分之一。通过定义一组卷积核(或过滤器),卷积层可以对输入的图像进行滤波操作,将原始图像中的特定特征(例如边缘和纹理)提取出来,并生成一系列特征图。这些特征图可以被认为是对原始图像进行不同尺度和方向的特征提取。 在经过卷积层之后,通常会接着使用池化层来进行下采样操作。池化层的主要目的是减小特征图的尺寸,同时保留重要的特征信息。最常见的池化操作是最大池化,它通过从特定区域选择最大值来减小特征图的尺寸。 最后,经过卷积层和池化层的多次迭代后,最后会以全连接层作为输出层,进行分类任务。全连接层的每个节点都与前一层的所有节点相连接,主要用于将最后一层的特征进行整合,并根据特征进行分类回归。 相比于传统机器学习算法,CNN在处理图像任务方面具有更好的性能。这是因为卷积层可以通过共享权重和局部连接的方式进行参数的共享,大大减少了需要训练的参数数量,并且能够有效处理图像的平移不变性。此外,卷积神经网络还可以通过堆叠多个卷积层和全连接层来构建深层网络模型,从而进一步提高模型的性能。 总而言之,卷积神经网络是一种强大的机器学习算法,特别适用于图像识别和计算机视觉任务。通过卷积层、池化层和全连接层的组合,CNN可以有效地提取图像中的特征,并进行分类回归任务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张謹礧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值