我正在接收上述格式的数据。通过这种方式,可以聚合来自不同来源的记录。一条记录实际上由BH列中的一行文本表示。数据分为从经理 1到经理 2 的记录,依此类推。但IL列有多行并引用组中的单个记录。
SourceSheet(示例数据)可用:SourceSheet
我需要按BH列过滤此数据。当我像往常一样过滤时,只过滤了一行。如何过滤由空行分隔的分组记录?
是否可以使用标准Google Sheet过滤器或Googe Apps Script来实现此功能?
我正在接收上述格式的数据。通过这种方式,可以聚合来自不同来源的记录。一条记录实际上由BH列中的一行文本表示。数据分为从经理 1到经理 2 的记录,依此类推。但IL列有多行并引用组中的单个记录。
SourceSheet(示例数据)可用:SourceSheet
我需要按BH列过滤此数据。当我像往常一样过滤时,只过滤了一行。如何过滤由空行分隔的分组记录?
是否可以使用标准Google Sheet过滤器或Googe Apps Script来实现此功能?
数据已转移到 URL https://docs.google.com/spreadsheets/d/1gFuY2i50Vxdl5kx7iHZAupILAW2u35KYSRzCKKXMWIk/edit#gid=0的另一张表格
数据(特定行)通过编辑事件触发器传递,并检查该行是否为A
空以及该行是否为F
“问题案例”。如果问题情况A
不为空,则当前工作表中当前行的数据将复制到另一个工作表。F
我从当前工作表中获取某些列:名称、日期、时间、城市、状态以及 G 列中的一些特定单元格,并将它们复制到另一张工作表。我只选取发生编辑的行。
代码:
function onEdit(e) {
try {
var sheet = e.source.getSheetByName('Daily report');
if (!sheet || e.range.columnStart < 6 || e.range.columnStart > 6) {
return;
}
var ui = SpreadsheetApp.getUi();
var title = "Message Box";
// Получаем данные из редактируемой строки
var row = e.range.rowStart;
var valueA = sheet.getRange('A' + row).getValue();
var valueF = sheet.getRange('F' + row).getValue();
// Проверяем, что строка C не пустая и значение в столбце G равно "Проблемный кейс"
if (valueA !== '' && valueF === 'Problem Case') {
// Получаем данные для записи в другой документ
var dataToSave = [
sheet.getRange('A' + row).getValue(),
sheet.getRange('B' + row).getValue(),
sheet.getRange('C' + row).getValue(),
sheet.getRange('D' + row).getValue(),
sheet.getRange('E' + row).getValue(),
sheet.getRange('F' + row).getValue(),
sheet.getRange('G3').getValue(),
sheet.getRange('G4').getValue(),
sheet.getRange('G5').getValue()
];
ui.alert(title, "TEST", ui.ButtonSet.OK);
var targetURL = "https://docs.google.com/spreadsheets/d/1gFuY2i50Vxdl5kx7iHZAupILAW2u35KYSRzCKKXMWIk/edit#gid=0";
var targetDoc = SpreadsheetApp.openByUrl(targetURL);
var targetList = targetDoc.getSheetByName("Sheet1");
targetList.getRange(1, 1, dataToSave.length, dataToSave[0].length).setValues([dataToSave]);
}
} catch (error) {
// Лог ошибки
Logger.log('Error: ' + error.toString());
}
}
如果编辑 F 列,它会检查条件并复制数据。Edit事件触发并将数据复制到数组:dataToSave。但是当我尝试在脚本中定义另一个文档和工作表时,就会出现问题。数据不会转移到另一张纸上。但dataToSave数组在编辑时会填充相应的数据。
我已通过目标文档的链接提供了编辑访问权限。我已授予脚本编辑我的 Google 表格的权限。但无论如何,什么也没有发生。
SourceSheet(源)可在以下位置获取:SourceSheet DestinationSheet(目标表)可在以下位置获取:DestinationSheet
在 Excel 中,我有一个包含数据的表格。有 4 个参数:Метод
, Решетка
, Кол-во линий
, Точность
。
这是关于识别精度的数据,取决于 3 个其他参数:方法、光栅类型和线数。
Метод
有两个选项:Distance和Number of points。Решетка
有两个选择:Grid和Circular。Кол-во линий
具有三个值:3、5和9。这 3 个特征的不同组合给出了不同的识别精度值(最后一列)。
我应该以更具说明性的方式呈现这些数据,并将其反映在图表上。是否可以在 Excel 的图表上可视化这些数据,以便所有4 个参数都参与并反映在图表中?
我正在使用Microsoft Office Professional Plus 2016
。
将 Excel 文件上传到 DropBox:4parameters.xlsx
如果任务是识别手写字母,那么机器学习的哪种方法/算法是最相关的,并且目前在该领域给出了更准确的结果?例如,是使用神经网络更好,还是没有 ANN 就可以完全放弃机器学习方法?
现在我面临着识别手写字母(西里尔文)的任务。字母将被单独识别(不是整个单词)。在入口处,我将提交带有各种俄语字母手写字母的表格。需要帮助选择最佳的手写识别算法/方法。
我正在使用Visual Studio 2015 Update 3。有一个ASP.NET MVC 4网站。框架:.NET Framework 4.5。该站点使用 Microsoft 数据库 ( (LocalDb)\v11.0
)。在本地运行一切正常,网站启动。
接下来,我使用发布选项通过 Visual Studio将该站点部署到Azure 网站。Web 应用程序已成功发布。但是我无法在浏览器中打开它。在浏览器中给出以下错误:
“/”应用程序中的服务器错误。
该系统找不到指定的文件
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。
异常详细信息: System.ComponentModel.Win32Exception:系统找不到指定的文件
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。
错误日志(堆栈跟踪):
[Win32Exception (0x80004005): The system cannot find the file specified]
[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)]
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) +1000
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +800
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +38
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +741
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +85
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +451
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +108
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +943
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +143
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +22
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +139
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +367
System.Data.SqlClient.SqlConnection.Open() +129
WebMatrix.Data.Database.EnsureConnectionOpen() +47
WebMatrix.Data.<QueryInternal>d__0.MoveNext() +67
System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source) +183
WebMatrix.Data.Database.QuerySingle(String commandText, Object[] args) +98
WebMatrix.WebData.DatabaseWrapper.QuerySingle(String commandText, Object[] parameters) +19
WebMatrix.WebData.SimpleMembershipProvider.CheckTableExists(IDatabase db, String tableName) +54
WebMatrix.WebData.SimpleMembershipProvider.CreateTablesIfNeeded() +50
WebMatrix.WebData.WebSecurity.InitializeMembershipProvider(SimpleMembershipProvider simpleMembership, DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean createTables) +71
WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +51
WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +55
OnlineAuction.MvcApplication.SetSecurityOptions() +60
OnlineAuction.MvcApplication.Application_Start() +51
[HttpException (0x80004005): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +477
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +350
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +303
[HttpException (0x80004005): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +657
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +96
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189
文件中的数据库连接字符串Web.config
:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=OnlineAuctionDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\OnlineAuctionDb.mdf" providerName="System.Data.SqlClient"/>
我将文件上传web.config
到DropBox
也许这是一个数据库问题。我使用VS中的“发布”选项发布了整个站点。但也许数据库没有与站点本身一起加载到云中,并且没有数据库就无法加载站点。但我不确定。如果问题出在数据库上,那么如何将数据库添加到云端站点,使它们交互并且站点像在本地一样工作?
问题的结构是这样的:首先给出集体识别的概念,然后解释我发现的各种集体分类方法,最后给出我的问题。那些已经在这种情况下吃过狗的人并且他们可能不需要解释它是什么以及方法是什么,可以简单地看一下我给出的方法的标题并继续这个问题。
集体(组)识别是指使用一组分类器,每个分类器对一个实体、情况、图像的类别做出决定,然后使用某种算法组合和协调各个分类器的决定。使用多个分类器通常会导致更高的识别精度和更好的计算效率。
一些组合分类器解决方案的方法:
基于分类器能力领域的概念和使用允许评估分类器与分类系统每个输入相关的能力的程序
基于使用神经网络组合解决方案的方法。
基于能力领域的集体分类的思想是每个基分类器在特征空间(能力领域)的某个区域都能很好地工作,在决策的准确性和可靠性方面超越该区域的其他分类器。必须以某种方式评估每个基础分类器的能力范围。对应的程序称为裁判. 分类问题的解决方式是每个算法仅在其能力范围内使用,即 与其他分类器相比,它给出了最好的结果。在这种情况下,每个区域只考虑一个分类器的决定。然而,有必要有一些算法,对于任何输入,确定哪个分类器是最有能力的。
其中一种方法假设与每个分类器一起使用一种特殊的算法(裁判),该算法旨在评估分类器的能力。分类器在分类对象表示空间的给定区域中的能力被理解为它的准确性,即 正确分类其描述属于该区域的对象的概率。
基于能力评估的教学集体认可的总体方案包括2个步骤(图1)。第一步,训练和测试每个特定的基础分类器。此步骤与常规学习模式没有区别。下一步,在对每个分类器进行测试后,将某个分类器在测试阶段使用的训练样本分成两个子集,L+和L−. 在这种情况下,第一个子集包括在测试期间正确分类的原始测试样本的那些实例。第二个子集包括测试样本的剩余实例,即 那些被错误分类的。将这些数据集分别视为分类器的胜任和无能领域,可以将它们用作训练数据来训练“裁判”算法。在对新数据进行分类时,裁判的任务是为每个输入的例子判断它是否属于算法的能力范围,如果是,正确分类这个例子的概率是多少。之后,裁判指示最有能力的分类器解决分类问题。
集体分类的神经网络方法分为使用神经网络分类器组合的方法、网络集成(ensembles of neural networks)和使用从模块构建的神经网络的方法。
一种方法考虑使用神经网络来组合基本分类器的解决方案(图 2)。
每个基分类器的输出是一个决策向量(包含软标签作为值的向量),其元素值属于某个数值区间[a,b]。这些值被馈送到神经网络的输入端(必须对其进行训练以结合基层分类器的决策),其输出是有利于特定类别的决策。网络的输出也可以是一个向量,其维度等于可识别对象的类数,在每个位置都具有支持一个或另一个类的特定置信度值。在这种情况下,可以选择具有此类度量最大值的类作为解决方案。
决策融合系统的功能如下:
对于模块化神经网络,建议使用所谓的网关网络(“门控网络”),这是一种神经网络,用于评估分类器针对呈现给分类器的特定输入数据向量的能力。该选项考虑了一种神经网络范例,用于根据能力分数组合决策。相应的理论在这里称为专家混合。每个分类器都分配有一个“裁判”程序,该程序预测其与提供给一组基层分类器输入的特定输入相关的能力程度(图 3)。
根据输入向量X,可以选择来自不同分类器的解决方案并将其用于做出组合决策。预测网络输入的数量等于特征空间输入向量的维数。网络输出的数量等于分类器的数量,即 L._ _ 预测神经网络被训练来预测每个分类器在呈现特定输入向量时的能力度量,即 对分类器产生正确解决方案这一事实的评估。能力程度由区间[0,1]中的数字估计。
此外,还提出了由多个专家(神经网络)组成的决策融合系统的架构。将神经网络的知识结合在一个集成中已经证明了它的有效性,展示了使用集体识别技术克服“脆弱性”问题的希望。
神经网络集成是一组神经网络模型,它通过对各个模型的结果进行平均来做出决策。根据集成的构建方式,它的使用可以解决两个问题之一:底层神经网络架构欠拟合的趋势(这个问题由元算法解决boosting
),或者底层架构过拟合的趋势(元-算法bagging
)。
有多种全民投票方案,班级获胜:
还有这样的集成机器学习算法:
问题是哪种集体识别方案更适合用于字符/数字/数字识别。我从中获取有关各种群体分类方案的信息的数据来源可以追溯到 2006 年,恐怕有些方法可能已经过时了。就任何方法的相关性而言,使用哪种方案更合理。
我已经提到了以下方案:
哪种方法可能会在字符/数字/车牌识别领域提供最佳的准确性和性能指标。也许有些方法已经过时或在某些方面已经失败。也许还有其他更有效和相关的集体认可方法(群体分类)。
有详细描述的来源(我从那里获取了有关集体认可方法的信息):
集体识别的方法和算法:概述(V. I. Gorodetsky,2006 年,pdf)