机器学习(ML)。使用算法训练数学模型 神经网络 回归和分类方法
神经网络是一种模仿人脑功能的机器学习/深度学习算法。它们由多层神经元组成,这些神经元相互连接并通过激活函数相互作用。神经网络使用输入层(数据作为输入)、隐藏层(包含处理数据的人工神经元)和输出层(从处理后的数据生成输出)。神经网络算法属于监督学习算法的范畴,用于预测连续(回归)和分类(分类)输出变量。我们软件的这一功能使机器学习技术可供广泛的用户使用。
您可以下载结构化电子表格文件的示例,用于创建数学模型并通过神经网络算法进行预测以进行回归分析: XLSX 和分类 XLSX 。
表文件中的结构化数据可用于导入:Excel 工作簿 (*.xlsx); Excel 二进制工作簿 (*.xlsb); OpenDocument 电子表格 (*.ods)。
它用在哪里?
使用神经网络方法进行数据分析可以使用:
- 作为有效的(成本、时间、资源)替代方案” 规划实验 “寻找输入参数的最佳模式;
- 当通过昂贵和/或耗时的测试来执行输出参数的测量程序时,用于对输出参数进行初步或替代评估;
- 对于专家决策支持系统(DSS),当决策与人为错误的风险相关时。
数据模型文件
我们的软件可以使用 scikit-learn 库的经过训练的神经网络数学模型,该模型在其他计算机上创建并保存在文件 (*.sav) 中。
通过回归方法在输入和输出处进行连续量(测量)的神经网络
图 1. 用于访问机器学习 (ML) 功能的窗口。当您将鼠标悬停在主菜单项上时,会显示下拉菜单列表。
图 2. 机器学习 (ML) 功能窗口。当您将鼠标悬停在按钮上以转到神经网络功能(回归和分类)时,会显示工具提示。
图 3. 过渡到使用神经网络方法(回归和分类)管理机器学习算法的功能的窗口。当您将鼠标悬停在按钮上以转到神经网络算法(回归)的控制面板时,会出现一个下拉工具提示。
图 4. 使用神经网络方法(回归)控制机器学习算法的函数窗口。选择要预测的变量。设置默认值:隐藏层数和每个隐藏层神经元数、迭代次数(epochs)。选中该复选框可将模型保存在适当的应用程序文件夹 (SCCPython\resources\Model_AI) 中。训练好的数学模型的特征和准确性指标显示在神经网络图上方。绘图区域显示“神经网络图,实际值与预测值”图。
图 5. 使用神经网络方法(回归)控制机器学习算法的函数窗口。神经网络的隐藏层数量和每个隐藏层中的神经元的字段值已更改。
图 6. 使用神经网络方法(回归)控制机器学习算法的函数窗口。将打开包含数学模型评估图类型的下拉列表。
图 7. 使用神经网络方法(回归)控制机器学习算法的函数窗口。绘图区域显示测试数据集的“实际值与预测值”图。
图 8. 用于控制神经网络数学模型(回归)应用的函数窗口。绘图区域显示测试数据集的“实际值与预测值”图。使用图表下方的缩放工具在 X 轴上缩放图表以显示更少的点(从 140 到 196)。
加载包含已保存的神经网络数学模型(回归)的文件并将其应用于数据进行预测的功能类似于页面上描述的功能 决策树(回归) 。
如果您导入的数据包含一个或多个具有分类值的解释变量列,例如 [male,female],则将执行自动 One-Hot Encoding 过程,将数据转换为新的数字编码列 [0, 1]。热编码数据将保存在新工作表中的原始 [xlsx] 文件中。
使用神经网络(回归)方法的数学模型精度较低的原因
- 数据量有限:如果训练模型的数据量有限,神经网络可能没有足够的信息来创建准确的模型。通常需要大量且多样化的数据来训练高精度的神经网络。
- 不合适的网络架构:选择合适的神经网络架构非常重要。如果所选的神经网络架构不适合特定的数据集或回归问题,则可能会导致模型精度较差。有必要尝试不同类型的层、隐藏单元的数量和网络结构以获得更好的结果。
- 训练不足:训练神经网络可能是一个复杂的过程,需要足够数量的 epoch 并仔细调整超参数。如果模型没有经过足够的历次训练或超参数选择不正确,可能会导致模型精度较低。
- 过拟合:如果训练集太小并且模型参数太多,神经网络可能会遇到过拟合问题。这可能导致模型的泛化能力较差,并且对新数据的准确性较低。重新训练时,建议使用正则化方法,例如降低学习率或引入对权重范数的限制。
- 不正确的数据预处理:不正确的数据预处理,例如缩放、归一化或异常值处理,可能会显着影响神经网络模型的准确性。在训练模型之前有必要仔细分析和准备数据。
- 数据不平衡:如果您的数据集包含目标变量不同值的示例数量不均匀,这可能会导致模型准确性较差。在这种情况下,可以应用示例加权技术。
- 数据采样的问题:如果随机或错误地选择数据,可能会导致模型精度较低。仔细选择数据以使其能够代表回归问题非常重要。
采用分类方法的神经网络,以连续量(测量值)作为输入,以分类数据(类别)作为输出
例1.根据患者的临床检查结果,需要对他的诊断作出决定,例如患病/未患病。
示例2. 有必要根据对象或事件的许多特性(属性)的测量结果得出关于对象或事件属于特定类(类型)的结论。
图 9. 用于管理神经网络数学模型(分类)的训练和评估的函数窗口。当您将鼠标悬停在按钮上以转到使用分类方法的神经网络算法的控制面板时,会显示下拉工具提示。
图 10. 用于管理神经网络数学模型(分类)的训练和评估的函数窗口。选择预测的分类变量(类变量)。设置默认值:隐藏层数和每个隐藏层神经元数、迭代次数(epochs)。选中该复选框可将模型保存在适当的应用程序文件夹 (SCCPython\resources\Model_AI) 中。训练好的数学模型的特征和准确性指标显示在神经网络图上方。将打开一个包含用于评估数学模型的图表的下拉列表。绘图区域显示“神经网络图,实际值与预测值”图。
图 11. 用于管理神经网络(分类)数学模型的训练和评估的函数窗口,带有“混淆矩阵”图。
加载包含已保存的神经网络数学模型(分类)的文件并将其应用于数据进行预测的功能类似于页面上描述的功能 决策树(分类) 。
如果您导入的数据包含一个或多个具有分类值的解释变量列,例如 [male,female],则将执行自动 One-Hot Encoding 过程,将数据转换为新的数字编码列 [0, 1]。热编码数据将保存在新工作表中的原始 [xlsx] 文件中。
使用神经网络方法(分类)的数学模型精度较低的原因
- 数据不足:如果模型使用少量数据进行训练,可能会导致准确率较低。可用于训练的数据越多,模型就越准确。
- 错误的神经网络架构:选择合适的神经网络架构很重要。架构与数据或分类任务不匹配可能会影响模型的准确性。
- 错误选择的超参数:神经网络有许多超参数需要适当调整。错误选择超参数可能会导致模型精度较低。
- 使用不正确的特征:选择正确且相关的特征也很重要。使用不适当或不相关的特征可能会降低分类准确性。
- 数据预处理不正确:数据预处理不正确会影响神经网络模型的准确性。这可能包括不正确的缩放、标准化或异常值处理。
- 损失函数的错误选择:神经网络的损失函数必须适合特定的分类任务。选择错误的损失函数会影响模型的准确性。