Analyzing marks in a visualization based on dataset characteristics
The system automatically analyzes and explains abnormal marks in data visualizations, addressing the challenge of data complexity and accessibility, and enhancing decision-making with clear, natural language explanations.
Patent Information
- Application Number
- JP2021575239
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-06-17
- Filing Date
- 2020-06-17
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2040-06-17
AI Technical Summary
Organizations face challenges in effectively utilizing vast amounts of data due to its complexity, requiring specialized analysts to explain abnormal marks in visualizations, which can be time-consuming and often inaccessible due to data confidentiality.
A system and method for automatically analyzing marks in visualizations by utilizing assessment models to generate judgment results, providing natural language explanations, and ranking decisions based on their association with scores, thereby enabling users to understand the reasons behind data values without needing extensive data analysis expertise.
The solution enables organizations to efficiently understand and interpret data visualizations, reducing the need for specialized analysts and improving data-driven decision-making by providing clear explanations for abnormal data points.
Smart Images

Figure 0007658284000001 
Figure 0007658284000002 
Figure 0007658284000003
Abstract
Description
[Technical field]
[0001] [CROSS REFERENCE TO RELATED APPLICATIONS] This application is a utility patent application based on previously filed U.S. Provisional Patent Application No. 62 / 862,349, filed June 17, 2019, the benefit of the filing date of which is hereby claimed under 35 U.S.C. §119(e), and further incorporated by reference in its entirety.
[0002] [Technical field] The present invention relates generally to data visualization, and more particularly, but not exclusively, to automatically explaining the reasons for the appearance of values in a visualization. [Background technology]
[0003] Organizations generate and collect ever-increasing amounts of data. This data may be associated with different parts of the organization, such as consumer activity, manufacturing activity, customer service, server logs, and the like. For various reasons, it may be inconvenient for such organizations to make effective use of vast collections of data. In some cases, the volume of data may make it difficult to make effective use of the collected data to improve business practices. In some cases, organizations employ various tools to generate visualizations of some or all of the data. Employing visualizations to represent this data may enable organizations to improve understanding of critical business operations and may help monitor key performance indicators. However, in some cases, the visualizations may include marks, signals, values, and the like that may appear out of place or otherwise anomalous. In some cases, determining the source or otherwise analyzing these sources or causes of such marks may require an inordinate level of understanding of the underlying data used to generate the visualization. Unfortunately, this may require organizations to direct skilled or specialized data analysts to review the visualizations and data to determine explanations for why marks may have a given value. Also, in some cases, even if a user has the skills and technical background to perform their own analysis, the underlying data may be confidential or otherwise inaccessible to users who may review the visualization. It is with respect to these considerations and others, therefore, that the present invention has been made. [Brief description of the drawings]
[0004] Non-limiting and non-exhaustive embodiments of the present innovation are described with reference to the following drawings, in which like reference numerals refer to like parts throughout the various drawings unless otherwise specified. For a better understanding of the described innovation, reference is made to the following detailed description of various embodiments, which should be read in connection with the accompanying drawings. [Figure 1] 1 illustrates a system environment in which various embodiments may be implemented. [Diagram 2] 1 illustrates a schematic embodiment of a client computer. [Diagram 3] 1 illustrates a schematic embodiment of a network computer. [Figure 4] 1 illustrates a logical architecture of a system for analyzing marks in a visualization based on data characteristics, according to one or more of the various embodiments. [Diagram 5] 1 illustrates a logical representation of a portion of a visualization in accordance with one or more of various embodiments. [Figure 6] 1 illustrates a logical representation of a portion of a mark determination system according to one or more of various embodiments. [Figure 7] 1 illustrates a logical representation of a portion of a user interface for analyzing marks in a visualization based on data characteristics, according to one or more of the various embodiments. [Figure 8] 1 depicts an overview flowchart of a process for analyzing marks in a visualization based on data characteristics, in accordance with one or more of various embodiments. [Figure 9] 1 illustrates a flowchart of a process for analyzing a mark using a decision model, according to one or more of the various embodiments. [Figure 10] 1 illustrates a flowchart of a process for adapting filtering or ranking of a judgment model based on monitoring of user interactions according to one or more of the various embodiments. [Figure 11] 1 illustrates a flowchart of a process for generating an expectation distribution for a decision model in accordance with one or more of the various embodiments. [Figure 12] 1 illustrates a flowchart of a process for comparing results of decision models according to one or more of the various embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0005] Various embodiments will now be described in more detail below with reference to the accompanying drawings, which form a part hereof and which show, by way of example, specific exemplary embodiments in which the present invention may be practiced. However, the embodiments may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the embodiments to those skilled in the art. Among other things, the various embodiments may be methods, systems, media, or devices. Thus, the various embodiments may take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Thus, the following detailed description should not be taken in a limiting sense.
[0006] Throughout the specification and claims, the following terms take on the meanings expressly associated therewith, unless the context clearly dictates otherwise. As used herein, the phrase "in one embodiment" does not necessarily refer to the same embodiment, but may. Additionally, as used herein, the phrase "in another embodiment" does not necessarily refer to different embodiments, but may. Thus, as described below, various embodiments can be readily combined without departing from the scope or spirit of the invention.
[0007] Additionally, as used herein, the term "or" is an inclusive "or" operator and is equivalent to the term "and / or," unless the context clearly dictates otherwise. The term "based on" is not exclusive and allows for based on additional unrecited factors, unless the context clearly dictates otherwise. Additionally, throughout the specification, the meanings of "a," "an," and "the" include plural references. The meaning of "in" includes "in" and "on."
[0008] In exemplary embodiments, the following terms are also used herein in accordance with the corresponding meanings unless the context clearly dictates otherwise:
[0009] As used herein, the term "engine" refers to logic embodied in hardware or software instructions, which may be implemented in C, C++, Objective-C, COBOL, Java. TM , PHP, Perl, JavaScript, Ruby, VBScript, C# and other Microsoft.NET TM The engine may be written in a programming language such as a .NET programming language. The engine may be compiled into an executable program or may be written in an interpreted programming language. A software engine may be callable from other engines or from itself. An engine as described herein refers to one or more logical modules that may be merged with other engines or applications or may be divided into sub-engines. An engine may be stored on a non-transitory computer-readable medium or computer storage device and stored and executed on one or more general-purpose computers, thus creating a special-purpose computer configured to provide the engine.
[0010] As used herein, the term "data source" refers to a database, application, service, file system, etc. that stores or provides information for an organization. Examples of data sources may include RDBMS databases, graph databases, spreadsheets, file systems, document management systems, local or remote data streams, etc. In some cases, data sources are organized around one or more tables or table-like structures. In other cases, data sources are organized as graphs or graph-like structures.
[0011] As used herein, the term "data model" refers to one or more data structures that provide a representation of an underlying data source. In some cases, a data model can provide a view of the data source for a particular application. A data model may be considered a view or interface to the underlying data source. In some cases, a data model can map directly to the data source (e.g., a logical pass-through in effect). Also, in some cases, a data model may be provided by the data source. In some situations, a data model may be considered an interface to the data source. A data model allows an organization to organize or present information from a data source in a way that may be more convenient, more meaningful (e.g., easier to reason about), more secure, etc.
[0012] As used herein, the term "data object" refers to one or more entities or data structures that comprise a data model. In some cases, a data object may be considered a part of a data model. A data object may represent an item or an individual instance of a class or type of item.
[0013] As used herein, the term "panel" refers to an area in a graphical user interface (GUI) that has a defined geometry (e.g., x, y, z order) within the GUI. Panels may be arranged to display information to a user or host one or more interactive controls. The geometry or style associated with a panel may be defined using configuration information, including dynamic rules. Also, in some cases, a user may be enabled to perform actions on one or more panels, such as moving, showing, hiding, resizing, reordering, etc.
[0014] As used herein, a "visualization model" refers to one or more data structures that represent one or more representations of a data model that may be suitable for use in a visualization displayed on one or more hardware displays. A visualization model may define styling or user interface functionality that may be made available to non-authoring users.
[0015] As used herein, the term "display object" refers to one or more data structures that comprise a visualization model. In some cases, a display object may be considered a part of a visualization model. A display object may represent an individual instance of an item or an entire class or kind of item that may be displayed in a visualization. In some embodiments, a display object may be considered or called a view because it provides a view of some portion of a data model.
[0016] As used herein, the term "mark" refers to a distinct or otherwise identifiable portion of a visualization that may correspond to a particular value or result within the visualization. For example, if a visualization includes a bar graph, one or more of the bars may be considered a mark. Similarly, if a visualization includes a line plot, a location on the plot may be considered a mark.
[0017] As used herein, the term "mark-of-interest" refers to a mark in a visualization that is selected from among other marks included in the visualization. In some cases, marks in a visualization may incorporate one or more interactive features that may enable a user to select or identify one or more marks of interest from among the marks that comprise the visualization. For example, a user may be enabled to select a mark of interest by right-clicking a mouse button while a mouse pointer may be hovering over the mark. In some cases, a mark of interest may be selected via searching, filtering, etc.
[0018] As used herein, the term "configuration information" refers to information that may include rule-based policies, pattern matching, scripts (e.g., computer-readable instructions), and the like, which may be provided from a variety of sources, including configuration files, databases, user input, built-in defaults, and the like, or combinations thereof.
[0019] The following presents a brief summary of embodiments of the invention in order to provide a basic understanding of some aspects of the invention. This brief summary is not intended to be an extensive overview. It is not intended to identify key or essential elements or to delineate or narrow the scope. Its purpose is merely to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
[0020] Briefly, various embodiments are directed to managing visualization of data using one or more processors executing one or more instructions to perform as described herein.
[0021] In one or more of the various embodiments, one or more visualizations based on data from a data source may be provided, such that the one or more visualizations include one or more marks that may be associated with one or more values from the data source.
[0022] In one or more of the various embodiments, the mark of interest may be determined from the one or more marks based on one or more characteristics of the one or more marks, one or more visualizations, etc. In one or more of the various embodiments, determining the mark of interest may include automatically analyzing one or more values associated with the one or more marks and determining the mark of interest based on the automatic analysis.
[0023] In one or more of the various embodiments, one or more assessment models may be utilized to generate one or more assessment results for the one or more assessment models based on the marks of interest and the data from the data source, whereby each assessment result may be associated with one or more scores that may be based on a best fit to the data from the data source and the value of the marks of interest. In one or more of the various embodiments, generating the one or more assessment results may include generating one or more natural language explanations that describe one or more characteristics of the marks of interest based on the assessment and one or more explanation templates, and including the one or more natural language explanations in the one or more assessment results.
[0024] In one or more of the various embodiments, the one or more decisions may be rank-ordered based on their association with one or more scores.
[0025] In one or more of the various embodiments, a report may be provided that includes a rank-ordered list of the one or more decision outcomes. In one or more of the various embodiments, providing the report may include generating one or more other visualizations that may be associated with the one or more decision models, the one or more decision outcomes, marks of interest, etc.
[0026] In one or more of various embodiments, feedback information associated with the report may be monitored. In one or more of various embodiments, one or more other scores based on the feedback information may be provided. In one or more of various embodiments, the one or more other scores may be utilized to determine one or more modifications to the one or more decisions.
[0027] In one or more of the various embodiments, one or more judgment outcomes may be filtered based on one or more scores, such that each judgment outcome associated with a score that may be below a defined threshold is excluded from the report.
[0028] In one or more of various embodiments, data associated with the marks of interest included in the data source and omitted from the visualization may be evaluated, and thus, in some embodiments, one or more decisions may be generated in part based on this evaluation.
[0029] [Example operating environment] 1 illustrates components of one embodiment of an environment in which embodiments of the present invention may be implemented. Not all of the components may be required to implement the present invention, and variations in the configuration and type of components may be made without departing from the spirit or scope of the present invention. As illustrated, the system 100 of FIG. 1 includes a local area network (LAN) / wide area network (WAN)-(network) 110, a wireless network 108, client computers 102-105, a visualization server computer 116, a data source server computer 118, etc.
[0030] At least one embodiment of the client computers 102-105 is described in more detail below in connection with FIG. 2. In one embodiment, at least some of the client computers 102-105 may operate on one or more wired or wireless networks, such as network 108 or 110. In general, the client computers 102-105 may include virtually any computer capable of communicating over a network to send and receive information, perform various online activities, offline actions, and the like. In one embodiment, one or more of the client computers 102-105 may be configured to operate within a business or other entity to perform various services for the business or other entity. For example, the client computers 102-105 may be configured to operate as a web server, a firewall, a client application, a media player, a mobile phone, a game console, a desktop computer, and the like. However, the client computers 102-105 are not constrained to these services and may be utilized in other embodiments, for example, in connection with end-user computing. It should be appreciated that more or fewer client computers (as shown in FIG. 1) may be included in a system as described herein, and thus the embodiments are not constrained by the number or type of client computers utilized.
[0031] Computers that may operate as client computers 102 may include computers that typically connect using wired or wireless communication media, such as personal computers, multiprocessor systems, microprocessor-based or programmable electronic devices, network PCs, and the like. In some embodiments, client computers 102-105 may include virtually any portable computer capable of connecting to and receiving information from another computer, such as laptop computers 103, mobile computers 104, tablet computers 105, and the like. However, portable computers are not so limited and may include other portable computers, such as cellular telephones, display pagers, radio frequency (RF) devices, infrared (IR) devices, personal digital assistants (PDAs), handheld computers, wearable computers, integrated devices that combine one or more of the traditional computers, and the like. Thus, client computers 102-105 typically range widely in terms of capabilities and functionality. Additionally, client computers 102-105 may have access to a variety of computing applications, including browsers or other web-based applications.
[0032] A web-enabled client computer may include a browser application configured to send requests and receive responses over the web. The browser application may be configured to receive and display graphics, text, multimedia, and the like utilizing virtually any web-based language. In one embodiment, the browser application is enabled to display and send messages utilizing JavaScript, HyperText Markup Language (HTML), Extensible Markup Language (XML), JavaScript Object Notation (JSON), Cascading Style Sheets (CSS), and the like, or combinations thereof. In one embodiment, a user of a client computer may utilize the browser application to perform various activities over a network (online). However, other applications may be used to perform various online activities.
[0033] The client computers 102-105 may further include at least one other client application configured to receive or send content to or from another computer. The client application may include functionality to send or receive content, and the like. The client application may further provide information to identify itself, including type, capabilities, name, and the like. In one embodiment, the client computers 102-105 may uniquely identify themselves through any of a variety of mechanisms, including an Internet Protocol (IP) address, a phone number, a Mobile Identification Number (MIN), an electronic serial number (EIN), a client certificate, or other device identifier. Such information may be provided, for example, in one or more network packets transmitted between the other client computers, the visualization server computer 116, the data source server computer 118, or other computers.
[0034] The client computers 102-105 may further be configured to include a client application that allows an end user to log into an end user account that may be managed by another computer, such as the visualization server computer 116, the data source server computer 118, etc. Such an end user account may be configured to allow the end user to manage one or more online activities, including, in one non-limiting example, project management, software development, systems administration, configuration management, search activity, social networking activity, browsing various websites, communicating with other users, etc. The client computers may also be configured to allow the user to view reports, interactive user interfaces, or results provided by the visualization server computer 116, the data source server computer 118, etc.
[0035] Wireless network 108 is configured to couple client computers 103-105 and their components with network 110. Wireless network 108 may include any of a variety of wireless sub-networks that may further overlay standalone ad-hoc networks, etc., to provide infrastructure-oriented connectivity to client computers 103-105. Such sub-networks may include mesh networks, wireless LAN (WLAN) networks, cellular networks, etc. In one embodiment, the system may include two or more wireless networks.
[0036] Wireless network 108 may further include an autonomous system of terminals, gateways, routers, etc., connected by wireless radio links, etc. These connectors may be configured to move freely and randomly and organize themselves arbitrarily, such that the topology of wireless network 108 may change rapidly.
[0037] Wireless network 108 may further utilize multiple access technologies including second (2G), third (3G), fourth (4G), fifth (5G) generation wireless access for cellular systems, WLAN, wireless router (WR) mesh, etc. Access technologies such as 2G, 3G, 4G, 5G, and future access networks can enable wide area coverage for mobile computers such as client computers 103-105 having various degrees of mobility. In one non-limiting example, the wireless network 108 can enable wireless connectivity through Global System for Mobile communication (GSM), General Packet Radio Services (GPRS), Enhanced Data GSM Environment (EDGE), code division multiple access (CDMA), time division multiple access (TDMA), Wideband Code Division Multiple Access (WCDMA), High Speed Downlink Packet Access (HSDPA), Long Term Evolution (LTE), etc. In essence, the wireless network 108 can include virtually any wireless communication mechanism by which information can travel between the client computers 103-105 and other computers, networks, cloud-based networks, cloud instances, etc.
[0038] Network 110 is configured to couple network computers with other computers, including visualization server computer 116, data source server computer 118, client computer 102, and client computers 103-105 through wireless network 108. Network 110 is enabled to utilize any form of computer-readable media to communicate information from one electronic device to another. Network 110 may also include the Internet, as well as a local area network (LAN), a wide area network (WAN), a direct connection, e.g., through a universal serial bus (USB) port, an Ethernet port, or the like, other forms of computer-readable media, or any combination thereof. In a set of interconnected LANs, including those based on different architectures and protocols, a router acts as a link between the LANs, enabling messages to be sent from one to another. Additionally, communication links within a LAN typically include twisted wire pairs or coaxial cables, while communication links between networks may utilize analog telephone lines, fully or partially dedicated digital lines including T1, T2, T3, and T4, or other carrier mechanisms, including, for example, E-carriers, Integrated Services Digital Networks (ISDN), Digital Subscriber Lines (DSL), wireless links including satellite links, or other communication links known to those skilled in the art. Additionally, communication links may further utilize any of a variety of digital signaling technologies, including, for example, without limitation, DS-0, DS-1, DS-2, DS-3, DS-4, OC-3, OC-12, OC-48, etc. Additionally, remote computers and other associated electronic devices may be remotely connected to either the LAN or WAN via modems and temporary telephone links. In one embodiment, the network 110 may be configured to carry Internet Protocol (IP) information.
[0039] Additionally, communication media typically embodies computer readable instructions, data structures, program modules, or other transport mechanism and includes any non-transitory or transitory delivery medium of information. By way of example, communication media includes wired media such as twisted pair, coaxial cable, fiber optics, wave guides, and other wired media, and wireless media such as acoustic, RF, infrared and other wireless media.
[0040] Additionally, one embodiment of the visualization server computer 116, the data source server computer 118, etc., is described in further detail below in conjunction with FIG. 3. Although FIG. 1 illustrates the visualization server computer 116, the data source server computer 118, etc., each as a single computer, the innovations or embodiments are not so limited. For example, one or more functions of the visualization server computer 116, the data source server computer 118, etc., may be distributed across one or more distinct network computers. Furthermore, in one or more embodiments, the visualization server computer 116, the data source server computer 118, etc. may be implemented using multiple network computers. Furthermore, in one or more of various embodiments, the visualization server computer 116, the data source server computer 118, etc., may be implemented using one or more cloud instances in one or more cloud networks. Thus, these innovations and embodiments should not be construed as limited to a single environment, and other configurations and other architectures are also contemplated.
[0041] [Example Client Computer] 2 illustrates an embodiment of a client computer 200, which may include more or fewer components than those shown. Client computer 200 may represent, for example, one or more embodiments of the mobile computer or client computer illustrated in FIG.
[0042] The client computer 200 may include a processor 202 in communication with a memory 204 via a bus 228. The client computer 200 may further include a power source 230, a network interface 232, an audio interface 256, a display 250, a keypad 252, an illuminator 254, a video interface 242, an input / output interface 238, a haptic interface 264, a global positioning system (GPS) receiver 258, an open air gesture interface 260, a temperature interface 262, a camera 240, a projector 246, a pointing device interface 266, a processor readable fixed storage device 234, and a processor readable removable storage device 236. The client computer 200 may optionally communicate with a base station (not shown) or directly with another computer. Also, in one embodiment, a gyroscope (not shown) may be utilized within the client computer 200 to measure or maintain the orientation of the client computer 200.
[0043] The power supply 230 can provide power to the client computer 200. A rechargeable or non-rechargeable battery may be used to provide power. Power may also be provided by an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the battery.
[0044] The network interface 232 includes circuitry for coupling the client computer 200 to one or more networks and is configured for use with one or more communications protocols and technologies, including but not limited to protocols and technologies implementing any portion of the OSI model for any of the following wireless communication protocols: Global System for Mobile Communications (GSM), CDMA, Time Division Multiple Access (TDMA), UDP, TCP / IP, SMS, MMS, GPRS, WAP, UWB, WiMax, SIP / RTP, GPRS, EDGE, WCDMA, LTE, UMTS, OFDM, CDMA2000, EV-DO, HSDPA, or a variety of other wireless communication protocols. The network interface 232 is sometimes known as a transceiver, a transceiver, or a network interface card (NIC).
[0045] Audio interface 256 can be configured to generate and receive audio signals, such as the sound of a human voice. For example, audio interface 256 may be coupled to a speaker and microphone (not shown) to enable telecommunication with others or to generate audio acknowledgments for some actions. The microphone in audio interface 256 can also be used for input to or control of client computer 200, for example, using voice recognition, detection of touch based on sound, etc.
[0046] Display 250 may be a liquid crystal display (LCD), gas plasma, electronic ink, light emitting diode (LED), organic LED (OLED), or any other type of light reflective or light transmissive display that can be used with a computer. Display 250 may further include a touch interface 244 configured to receive input from an object such as a stylus, or a finger width from a human hand, and may use resistive, capacitive, surface acoustic wave (SAW), infrared, radar, or other technologies to sense touch or gestures.
[0047] Projector 246 may be a remote handheld projector or an integrated projector capable of projecting an image onto a remote wall or any other reflective object, such as a remote screen.
[0048] Video interface 242 can be configured to capture video images, such as still photographs, video segments, infrared video, etc. For example, video interface 242 may be coupled to a digital video camera, a webcam, etc. Video interface 242 can include lenses, image sensors, and other electronic devices. The image sensor may include a complementary metal-oxide semiconductor (CMOS) integrated circuit, a charge-coupled device (CCD), or any other integrated circuit for sensing light.
[0049] Keypad 252 may include any input device configured to receive input from a user. For example, keypad 252 may include a push button numeric dial, or a keyboard. Keypad 252 may also include command buttons associated with selecting and sending images.
[0050] The illuminator 254 may provide a status indication or provide light. The illuminator 254 may remain active for a particular period of time or in response to an event message. For example, when the illuminator 254 is active, the illuminator may backlight the buttons of the keypad 252 and remain on while the client computer is powered on. The illuminator 254 may also backlight these buttons in various patterns when certain actions are performed, such as dialing another client computer. The illuminator 254 may also cause light sources located within a transparent or translucent case of the client computer to illuminate in response to actions.
[0051] Client computer 200 may also include a hardware security module (HSM) 268 that provides additional tamper-resistant safeguards for generating, storing, or using security / cryptographic information, such as keys, digital certificates, passwords, passphrases, two-factor authentication information, etc. In some embodiments, the hardware security module may be utilized to support one or more standard public key infrastructures (PKIs), may be utilized to generate, manage, or store key pairs, and the like. In some embodiments, HSM 268 may be a standalone computer, while in other cases, HSM 268 may be configured as a hardware card that can be added to a client computer.
[0052] The client computer 200 may further include an input / output interface 238 for communicating with external peripherals or other computers, such as other client computers and network computers. Peripherals may include audio headsets, virtual reality headsets, display screen glasses, remote speaker systems, remote speaker and microphone systems, etc. The input / output interface 238 may include any of a variety of interfaces, including Universal Serial Bus (USB), infrared, WiFi, WiMax, Bluetooth, etc. TM One or more of the techniques described above may be utilized.
[0053] The input / output interface 238 may further include one or more sensors for determining geolocation information (e.g., a GPS), monitoring power conditions (e.g., a voltage sensor, a current sensor, a frequency sensor, etc.), monitoring the weather (e.g., a thermostat, a barometer, anemometer, a humidity detector, a precipitation scale, etc.), etc. The sensors may be one or more hardware sensors that collect or measure data external to the client computer 200.
[0054] The haptic interface 264 can be configured to provide haptic feedback to the user of the client computer. For example, the haptic interface 264 may be utilized to cause the client computer 200 to vibrate in a particular manner when a user of another computer is calling. The temperature interface 262 can be used to provide a temperature measurement input or a temperature change output to the user of the client computer 200. The open air gesture interface 260 can sense the physical gestures of the user of the client computer 200, for example, by using a single or stereo video camera, radar, gyro sensors, etc., in a computer held or worn by the user. The camera 240 can be used to track the physical eye movements of the user of the client computer 200.
[0055] The GPS transceiver 258 can determine the physical coordinates of the client computer 200 on the surface of the Earth, which typically outputs a location as latitude and longitude values. The GPS transceiver 258 can further utilize other geo-positioning mechanisms, including, but not limited to, triangulation, Assisted GPS (AGPS), Enhanced Observed Time Difference (E-OTD), Cell Identifier (CI), Service Area Identifier (SAI), Enhanced Timing Advance (ETA), Base Station Subsystem (BSS), and the like, to further determine the physical location of the client computer 200 on the surface of the Earth. It is understood that under different conditions, the GPS transceiver 258 can determine the physical location of the client computer 200. However, in one or more embodiments, the client computer 200, through other components, may provide other information that can be utilized to determine the physical location of the client computer, including, for example, a Medium Access Control (MAC) address, an IP address, and the like.
[0056] In at least one of various embodiments, applications such as operating system 206, other client apps 224, web browser 226, etc., can be configured to utilize the geolocation information to select one or more localization features, such as time zone, language, currency, calendar format, etc. The localization features may be used in display objects, data models, data objects, user interfaces, reports, and internal processes or databases. In at least one of various embodiments, the geolocation information used to select the localization information may be provided by GPS 258. Additionally, in some embodiments, the geolocation information may include information provided using one or more geolocation protocols over a network, such as wireless network 108 or network 111.
[0057] The human interface components may be peripheral devices that are physically separate from the client computer 200 and allow for remote input or output to the client computer 200. For example, information that would be routed as described herein through a human interface component such as the display 250 or keyboard 252 may instead be routed through the network interface 232 to an appropriate remotely located human interface component. Examples of human interface peripheral components that may be remote include, but are not limited to, audio devices, pointing devices, keypads, displays, cameras, projectors, and the like. These peripheral components may include, but are not limited to, Bluetooth devices, pointing devices, keypads, displays, cameras, projectors, and the like. TM , Zigbee (registered trademark) TMOne non-limiting example of a client computer with such a peripheral human interface component is a wearable computer that includes a remote pico projector with one or more cameras in remote communication with a separately located client computer and can sense a user's gestures toward portions of an image projected by the pico projector onto a reflective surface such as a wall or the user's hand.
[0058] The client computer may include a web browser application 226 configured to receive and send web pages, web-based messages, graphics, text, multimedia, and the like. The browser application of the client computer may utilize virtually any programming language, including Wireless Application Protocol messages (WAP), and the like. In one or more embodiments, the browser application is enabled to utilize Handheld Device Markup Language (HDML), Wireless Markup Language (WML), WMLScript, JavaScript, Standard Generalized Markup Language (SGML), Hypertext Markup Language (HTML), Extensible Markup Language (XML), HTML5, and the like.
[0059] The memory 204 may include RAM, ROM, or other types of memory. The memory 204 represents an example of a computer-readable storage medium (device) for storage of information, such as computer-readable instructions, data structures, program modules, or other data. The memory 204 may store a BIOS 208 that controls the low-level operation of the client computer 200. The memory may further store an operating system 206 that controls the operation of the client computer 200. This component may include a UNIX or LINUX operating system. TMor a version of Windows Phone TM It will be appreciated that the operating system may include a specialized client computer communications operating system such as the Symbian operating system or a Java virtual machine module that allows control of hardware components or operating system operation via Java application programs.
[0060] The memory 204 may further include one or more data storage devices 210, which may be utilized by the client computer 200 to store, among other things, applications 220 or other data. For example, the data storage device 210 may be utilized to store information describing various capabilities of the client computer 200. This information may then be provided to another device or computer based on any of a variety of methods, including as part of a header during a communication, on request, and the like. Additionally, the data storage device 210 may be utilized to store social networking information, including address books, buddy lists, aliases, user profile information, and the like. The data storage device 210 may further include program code, data, algorithms, and the like, used by a processor, such as the processor 202, to execute and perform actions. In one embodiment, at least a portion of the data storage device 210 may further be stored on another component of the client computer 200, including, but not limited to, a non-transitory processor-readable removable storage device 236, a processor-readable fixed storage device 234, or even external to the client computer.
[0061] Applications 220 may include computer-executable instructions that, when executed by client computer 200, send, receive, or otherwise process instructions and data. Applications 220 may include, for example, a client visualization engine 222, other client applications 224, a web browser 226, etc. A client computer may be configured to exchange communications with one or more servers.
[0062] Other examples of application programs include calendars, search programs, email client applications, IM applications, SMS applications, Voice Over Internet Protocol (VOIP) applications, contact managers, task managers, transcoders, database programs, word processing programs, security applications, spreadsheet programs, games, search programs, visualization applications, and the like.
[0063] Further, in one or more embodiments (not shown), instead of a CPU, the client computer 200 may include an embedded logic hardware device, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable array logic (PAL), or the like, or a combination thereof. The embedded logic hardware device may directly execute its embedded logic to perform operations. Also, in one or more embodiments (not shown), instead of a CPU, the client computer 200 may include one or more hardware microcontrollers. In one or more embodiments, the one or more microcontrollers may directly execute their own embedded logic to perform operations, access their own internal memory and their own external input and output interfaces (e.g., hardware pins or wireless transceivers) to perform operations, such as a system on a chip (SOC).
[0064] [Example Network Computer] 3 illustrates one embodiment of a network computer 300 that may be included in a system implementing one or more of the various embodiments. The network computer 300 may include more or fewer components than those illustrated in FIG. 3. However, the illustrated components are sufficient to disclose an example embodiment for implementing these innovations. The network computer 300 may represent, for example, one embodiment of at least one of the visualization server computer 116, the data source server computer 118, etc. of FIG. 1.
[0065] A network computer such as network computer 300 may include a processor 302 that may communicate with memory 304 via bus 328. In some embodiments, processor 302 may be comprised of one or more hardware processors, or one or more processor cores. In some cases, one or more of the one or more processors may be specialized processors designed to perform one or more specialized actions as described herein. Network computer 300 further includes a power supply 330, a network interface 332, an audio interface 356, a display 350, a keyboard 352, an input / output interface 338, a processor-readable fixed storage device 334, and a processor-readable removable storage device 336. Power supply 330 provides power to network computer 300.
[0066] The network interface 332 includes circuitry for coupling the network computer 300 to one or more networks and is configured for use with one or more communications protocols and technologies, including, but not limited to, protocols and technologies implementing any portion of the Open Systems Interconnection Model (OSI model), Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), User Datagram Protocol (UDP), Transmission Control Protocol / Internet Protocol (TCP / IP), Short Message Service (SMS), Multimedia Messaging Service (MMS), General Packet Radio Service (GPRS), WAP, ultra-wide band (UWB), IEEE 802.16 Worldwide Interoperability for Microwave Access (WiMax), Session Initiation Protocol / Real-time Transport Protocol (SIP / Real-time Transport Protocol, RTP), or various other wired and wireless communications protocols. The network interface 332 is sometimes known as a transceiver, a transceiver device, or a network interface card (NIC). The network computer 300 can optionally communicate with a base station (not shown) or directly with another computer.
[0067] Audio interface 356 is configured to generate and receive audio signals, such as the sound of a human voice. For example, audio interface 356 may be coupled to a speaker and microphone (not shown) to enable telecommunication with others or to generate audio acknowledgments for some actions. The microphone in audio interface 356 may also be used for input to or control of network computer 300, for example, using voice recognition.
[0068] Display 350 may be a liquid crystal display (LCD), gas plasma, electronic ink, light emitting diode (LED), organic LED (OLED), or any other type of light reflective or transmissive display that can be used with a computer. In some embodiments, display 350 may be a handheld projector or picoprojector that can project an image onto a wall or other object.
[0069] The network computer 300 may also include an input / output interface 338 for communicating with external devices or computers not shown in FIG. TM , Firewire TM , WiFi, WiMax, Thunderbolt (registered trademark) TM , Infrared, Bluetooth TM , Zigbee TM , serial ports, parallel ports, and the like.
[0070] Input / output interface 338 may further include one or more sensors for determining geolocation information (e.g., GPS), monitoring power conditions (e.g., voltage sensor, current sensor, frequency sensor, etc.), monitoring weather (e.g., thermostat, barometer, anemometer, humidity detector, precipitation scale, etc.), etc. The sensors may be one or more hardware sensors that collect or measure data external to network computer 300. Human interface components may be physically separate from network computer 300, allowing remote input or output to network computer 300. For example, information routed as described herein through a human interface component such as display 350 or keyboard 352 may instead be routed through network interface 332 to an appropriate human interface component located elsewhere on the network. Human interface components include any component that allows a computer to receive input from or send output to a human user of the computer. Thus, a pointing device such as a mouse, stylus, trackball, etc. can communicate through pointing device interface 358 to receive user input.
[0071] The GPS transceiver 340 can determine the physical coordinates of the network computer 300 on the surface of the Earth, which typically outputs a location as latitude and longitude values. The GPS transceiver 340 can further determine the physical location of the network computer 300 on the surface of the Earth using other geographic positioning mechanisms, including, but not limited to, triangulation, Assisted GPS (AGPS), Extended Observed Time Difference (E-OTD), Cell Identifier (CI), Service Area Identifier (SAI), Extended Timing Advance (ETA), Base Station Subsystem (BSS), and the like. It is understood that under different conditions, the GPS transceiver 340 can determine the physical location of the network computer 300. However, in one or more embodiments, the network computer 300, through other components, may provide other information that can be utilized to determine the physical location of the client computer, including, for example, a Medium Access Control (MAC) address, an IP address, and the like.
[0072] In at least one of various embodiments, applications such as operating system 306, decision engine 322, visualization engine 324, modeling engine 326, other applications 329, etc., can be configured to utilize geolocation information to select one or more localization features, such as time zone, language, currency, currency format, calendar format, etc. The localization features may be used in user interfaces, dashboards, visualizations, reports, and internal processes or databases. In at least one of various embodiments, the geolocation information used to select the localization information may be provided by GPS 340. Additionally, in some embodiments, the geolocation information may include information provided using one or more geolocation protocols over a network, such as wireless network 108 or network 111.
[0073] The memory 304 may include random access memory (RAM), read only memory (ROM), or other types of memory. The memory 304 represents an example of a computer-readable storage medium (device) for storage of information, such as computer-readable instructions, data structures, program modules, or other data. The memory 304 stores a basic input / output system (BIOS) 308 that controls the low-level operation of the network computer 300. The memory further stores an operating system 306 that controls the operation of the network computer 300. It will be appreciated that this component may include a general-purpose operating system, such as a version of UNIX or LINUX™, or a specialized operating system, such as Microsoft Corporation's Windows® operating system or Apple® Corporation's OSX® operating system. The operating system may include or interface with one or more virtual machine modules, such as a Java virtual machine module that allows control of hardware components or operating system operations via Java application programs. Other runtime environments may be included as well.
[0074] Memory 304 may further include one or more data stores 310, which may be utilized by network computer 300 to store, among other things, applications 320 or other data. For example, data store 310 may be utilized to store information describing various capabilities of network computer 300. This information may then be provided to another device or computer based on any of a variety of methods, including being sent as part of a header during a communication, being sent upon request, etc. Additionally, data store 310 may be utilized to store social networking information, including address books, buddy lists, aliases, user profile information, etc. Data store 310 may further include program code, data, algorithms, etc. used by a processor, such as processor 302, to execute and perform actions, such as those described below. In one embodiment, at least a portion of data storage 310 may also be stored on another component of network computer 300, including but not limited to non-transitory media within processor readable removable storage 336, processor readable non-removable storage 334, or any other computer readable storage device within network computer 300 or even external to network computer 300. Data storage 310 may include, for example, data models 314, data sources 316, visualization models 318, decision models 319, etc.
[0075] Applications 320 may include computer-executable instructions that, when executed by network computer 300, send, receive, or otherwise process messages (e.g., SMS, multimedia messaging service (MMS), instant message (IM), email, or other messages), audio, video, and enable telecommunications with other users of other mobile computers. Other examples of application programs include calendars, search programs, email client applications, IM applications, SMS applications, Voice over Internet Protocol (VOIP) applications, contact managers, task managers, transcoders, database programs, word processing programs, security applications, spreadsheet programs, games, search programs, and the like. Applications 320 may include a decision engine 322, a visualization engine 324, a modeling engine 326, other applications 329, and the like, which may be configured to perform operations for the embodiments described below. In one or more of the various embodiments, one or more of the applications may be implemented as a module or component of another application. Additionally, in one or more of the various embodiments, an application may be implemented as an operating system extension, module, plug-in, and the like.
[0076] Further, in one or more of various embodiments, the decision engine 322, the visualization engine 324, the modeling engine 326, the other applications 329, etc. may be operable in a cloud-based computing environment. In one or more of various embodiments, these applications and others, including the management platform, may be executed within virtual machines or virtual servers that may be managed in a cloud-based computing environment. In one or more of various embodiments, in this context, applications may flow from one physical network computer to another within the cloud-based environment, depending on performance and scaling considerations that are automatically managed by the cloud computing environment. Similarly, in one or more of various embodiments, virtual machines or virtual servers dedicated to the decision engine 322, the visualization engine 324, the modeling engine 326, the other applications 329 may be provisioned and decommissioned automatically.
[0077] Similarly, in one or more of various embodiments, the decision engine 322, visualization engine 324, modeling engine 326, other applications 329, etc. may be located within virtual servers operating in a cloud-based computing environment, rather than being tied to one or more particular physical network computers.
[0078] Network computer 300 may also include a hardware security module (HSM) 360 that provides additional tamper-resistant safeguards for generating, storing, or using security / cryptographic information, such as keys, digital certificates, passwords, passphrases, two-factor authentication information, etc. In some embodiments, the hardware security module may be utilized to support one or more standard public key infrastructures (PKIs), may be utilized to generate, manage, or store key pairs, and the like. In some embodiments, HSM 360 may be a standalone network computer, while in other cases HSM 360 may be configured as a hardware card that may be installed in the network computer.
[0079] Further, in one or more embodiments (not shown), the network computer 300 may include an embedded logic hardware device, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable array logic (PAL), or the like, or a combination thereof, in place of a CPU. The embedded logic hardware device may directly execute its embedded logic to perform operations. Also, in one or more embodiments (not shown), the network computer may include one or more hardware microcontrollers in place of a CPU. In one or more embodiments, the one or more microcontrollers may directly execute their own embedded logic to perform operations and access their own internal memory and their own external input and output interfaces (e.g., hardware pins or wireless transceivers) to perform operations such as those of a system on a chip (SOC).
[0080] [Exemplary Logical System Architecture] 4 illustrates a logical architecture of a system 400 for analyzing marks in a visualization based on data characteristics, according to one or more of various embodiments. In one or more of various embodiments, the system 400 can be composed of various components, including one or more modeling engines, e.g., modeling engine 402; one or more visualization engines, e.g., visualization engine 404; one or more visualizations, e.g., visualization 406; one or more data sources, e.g., data sources 410; one or more visualization models, e.g., visualization models 408; or one or more assessment engines, e.g., assessment engine 412.
[0081] In one or more of various embodiments, the modeling engine 402 may be configured to allow a user to design one or more visualization models, which may be provided to the visualization engine 404. Thus, in one or more of various embodiments, the visualization engine 404 may be configured to generate one or more visualizations based on the visualization models.
[0082] In one or more of the various embodiments, the modeling engine may be configured to access one or more data sources, such as data source 410. In some embodiments, the modeling engine may be configured to include a user interface that allows a user to view various data source information, data objects, etc. to design visualization models that can be used to generate visualizations of information stored in the data sources.
[0083] Thus, in some embodiments, the visualization model may be designed to provide visualization including charts, plots, graphs, tables, graphics, styling, explanatory text, interactive elements, user interface features, etc. In some embodiments, a user may be provided with a graphical user interface that allows the user to interactively design the visualization model such that various elements or display objects in the visualization model may be associated with data from one or more data sources, such as data source 410.
[0084] In one or more of various embodiments, a data source, such as data source 410, can include one or more of a database, a data store, a file system, etc., which may be located locally or remotely. In some embodiments, a data source may be provided by another service over a network. In some embodiments, there may be one or more components (not shown) that filter or otherwise provide an administrative view or access to the data in the data source.
[0085] In one or more of various embodiments, the visualization models may be stored in one or more data stores, such as visualization model storage 408. In this example, in some embodiments visualization model storage 408 represents one or more databases, file systems, etc. for storing, securing, or indexing visualization models.
[0086] In one or more of the various embodiments, a visualization engine, such as visualization engine 404, may be configured to parse or otherwise interpret data from the visualization model and data sources to generate one or more visualizations that may be displayed to a user.
[0087] In one or more of the various embodiments, a decision engine, such as decision engine 412, may be configured to assess or otherwise evaluate marks in a visualization. Thus, in some embodiments, the decision engine may be configured to automatically provide a statistical explanation for the value of a particular data point (e.g., a mark) even if the explanatory data has been omitted from the visualization. In some embodiments, the decision engine may be configured to automatically pull in additional data from a data source associated with the visualization and assess its relevance using a statistical model, such as a decision model. In one or more of the various embodiments, the explanation for the mark may be communicated to the user as a text string and an interactive visualization, which may be further explored.
[0088] In one or more of the various embodiments, the assessment engine may enable a user to select one or more marks of interest from within the visualization. Thus, in some embodiments, the visualization engine may be configured to generate a visualization that includes interactive user interface features that enable a user to select a mark of interest. For example, in one or more of the various embodiments, the visualization engine may be configured to include an assess-this-mark command in a right-click context menu. Thus, in some embodiments, a user may right-click on a display object that represents a mark of interest to present a context menu and then select an assess-this-mark command from the context menu. In other embodiments, a user may be enabled to search for a mark of interest using a name or label associated with the mark.
[0089] FIG. 5 illustrates a logical representation of a portion of visualization 500, according to one or more of the various embodiments. As described above, a visualization engine may be configured to utilize a visualization model and data to generate a visualization, such as visualization 500. In this example, visualization 500 represents a bar graph showing sales revenue by day of the week. Those skilled in the art will appreciate that a visualization model or visualization engine may be configured to generate many different types of visualizations for various purposes depending on the design goals of a user or organization. Visualization 500 is presented here as a non-limiting example to help clarify the description of these innovations. Those skilled in the art will appreciate that this example is at least sufficient to disclose the innovations herein, and that a visualization engine or visualization model may be configured to generate many different visualizations for many different purposes in many domains.
[0090] In this example, visualization 500 includes mark 502 that represents revenue earned on Sunday. Thus, in this example, mark 502 may appear to be an anomalous result given that it appears significantly lower than other marks in visualization 500.
[0091] In this example, mark 502 may be determined to be a mark of interest because it may appear anomalous compared to other marks that may be associated with revenue values for other days of the week. In some embodiments, a user may be enabled to identify one or more marks of interest that may be interesting or anomalous. Also, in some embodiments, the decision engine may be configured to automatically identify one or more marks of interest based on automatically identifying marks that may be anomalous or statistical outliers.
[0092] In some embodiments, if a mark may be identified as a mark of interest, the decision engine may be configured to automatically perform one or more operations to analyze the mark of interest to provide an explanation for the apparent discrepancy. In some cases, the analysis performed by the decision engine may determine that the mark of interest is not anomalous and may be within the bounds of expectation.
[0093] 6 illustrates a logical representation of a portion of a mark judgment system 600 according to one or more of the various embodiments. In one or more of the various embodiments, the system 600 can include one or more components, such as a judgment engine 602, a judgment model 604, a visualization model 606, a data source 608, marks of interest 610, and a judgment result 612. In some embodiments, the judgment result, such as the judgment result 612, can be configured to include a confidence score 614 or a narrative 616.
[0094] In one or more of the various embodiments, the decision engine 602 may be configured to decide the mark of interest 610 based on the decision model 604. In one or more of the various embodiments, the decision model may be configured to include one or more heuristics or machine learning evaluators that may be implemented to classify the mark of interest.
[0095] As discussed herein, the decision engine may be configured to utilize one or more decision models and provide one or more reports regarding how well a given decision model matches (or classifies) a mark of interest. Thus, in this example, the decision result 612 includes a score, such as a confidence score 614, and a natural language explanation 616.
[0096] In one or more of the various embodiments, the judgment models may be configured to provide a score of how well they explain the marks of interest. In some embodiments, the judgment engine may be configured to execute or apply the judgment models to perform various evaluations of the marks of interest, the visualization models, or the data sources to classify the marks of interest. In some embodiments, a confidence score representing how well the marks of interest match the judgment models may be provided by the judgment models. For example, judgment model A may be configured to execute 10 tests or evaluate 10 conditions providing a score including 10 points for each match condition. Similarly, in some embodiments, the judgment model may execute or apply one classifier to provide a confidence score.
[0097] In one or more of the various embodiments, different judgment models may utilize different scoring criteria. Thus, in some embodiments, the judgment engine may be configured to weight or normalize the confidence scores provided by different judgment models. In some embodiments, specific normalization or weighting rules for normalizing or weighting the judgment model confidence scores may be provided via configuration information.
[0098] Also, in one or more of the various embodiments, the judgment model may be configured to provide a natural language explanation, such as explanation 616. In some embodiments, the natural language explanation may be utilized in a user interface or report that may be provided to a user to explain the judgment of the mark of interest with respect to a given judgment model. In some embodiments, the explanation may be based on a template that allows labels, units, values, etc. that may be associated with the mark of interest or visualization model to be included in the user interface or report information.
[0099] In one or more of the various embodiments, the judgment model may be designed or tuned to evaluate one or more statistical characteristics of the data associated with the interest mark. Thus, in one or more of the various embodiments, the judgment engine may be configured to apply one or more judgment models to determine whether the data associated with the interest mark has one or more statistical characteristics targeted by the judgment model. In some embodiments, the judgment model may be configured to provide a confidence score as a form of self-ranking, which represents how close the data associated with the interest mark is to the statistical characteristics that the judgment model may be designed to match or otherwise evaluate.
[0100] In one or more of the various embodiments, the one or more judgment models may focus on common, well-known, or common statistical characteristics that may be expected to be associated with marks of interest.
[0101] Also, in one or more of the various embodiments, one or more decision models may be customized or targeted to a particular problem domain or business domain. For example, a decision model targeted to financial information may be configured differently from a decision model targeted to employee information. Similarly, for example, a decision model targeted to the automotive industry may be configured differently from a decision model targeted to the cruise industry. Furthermore, in one or more of the various embodiments, one or more decision models may be customized to a particular data source or visualization model for a particular organization or user. Thus, in one or more of the various embodiments, the decision models may be stored in a data store that allows them to be configured independently of one another.
[0102] In one or more of the various embodiments, the decision engine may be configured to generate or maintain a profile for one or more decision models. In some embodiments, the profile may be configured to track information that can be used to tailor decision model results to a particular organization, user, problem domain, etc.
[0103] Thus, in one or more of various embodiments, the decision engine may be configured to utilize user activity information or user feedback to automatically build a decision model profile that can be utilized to modify or customize a decision report. For example, if users of an organization consistently report mismatches between interest marks and decision results, the decision engine may be configured to introduce weighting rules that increase or decrease the effective confidence score used to rank the decision results for the organization based on user feedback information.
[0104] In one or more of various embodiments, when a user selects an interest mark in a visualization, the decision engine can determine one or more decision models and apply them to the interest mark and its associated visualization model or data source. Accordingly, non-limiting examples of decision models are discussed below. For brevity and clarity, this discussion is limited to a few examples, but those skilled in the art will understand that other decision models are contemplated that may incorporate other or additional decision strategies.
[0105] NUMBER OF ROWS: A decision model may be configured to determine whether an unusually large or small number of data values or data records may be rolled up into the value represented by the mark of interest compared to other marks in the visualization. For example, in some cases, if the value of a mark of interest appears high compared to other marks, this may be explained because the number of underlying records contributing to the mark of interest may be larger than other marks, such as China's GDP being high because many people are in China.
[0106] MEASURE OF ROWS: A decision model may be enabled to determine if the average value in the rows aggregated to a mark of interest is high compared to other marks in the visualization. For example, in some cases, if the value of a mark of interest appears high compared to other marks, this may be explained because the underlying records contributing to the mark of interest may have an above average value compared to the underlying records of other marks, such as a high US GDP because people in the US make more money than people in other countries.
[0107] UN-VISUALIZED DIMENSION: A decision model can be configured to evaluate whether the data records rolled up into a mark of interest differ from other rows in some dimension that is not included in the visualization seen by the user. For example, store X has a high average order price because it sells diamonds and most other stores do not sell diamonds. Other stores that sell diamonds also have high average order prices.
[0108] VISUALIZED DIMENSION: A decision model can be configured to evaluate whether the data records rolled up into the mark of interest differ from other data records along some dimension included in the visualization. For example, store X had high total sales in 2015, but this is part of an overall trend in sales per store, rather than a geographic region related difference between the mark of interest and other marks.
[0109] ONE OUTLIER: The decision model may be configured to determine whether there may be a single outlier in the data record associated with the mark of interest that may lead to the mark of interest appearing differently from other marks in the visualization. Thus, in some embodiments, this may suggest that one data record may merit further investigation. For example, Region X had high sales on 2018-04-28 because outlier order Y occurred on that day.
[0110] MULTIPLE OUTLIERS: A decision model may be configured to determine if there may be multiple outliers that, collectively, may cause the mark of interest to appear different from other marks in the visualization. This result may suggest a potential missing factor. For example, region X had high sales on 2018-04-28 because orders Y1, Y2, and Y3 were all in that region on that day. Such a result may merit further investigation.
[0111] INTERMEDIATE AGGREGATE: A decision model may be configured to determine whether a subset of data records associated with an interest mark value yields inconsistent or potentially unlikely values across the entire set of data records or compared to other subsets of data records. For example, a decision model may report that Region X had high sales on 2018-04-28, but this was because Store Y was in Region X, which had high sales on that day, but there was no individual order that dominated the sales at Store Y.
[0112] 7 illustrates a logical representation of a portion of a user interface 700 for analyzing marks in a visualization based on data characteristics, according to one or more of various embodiments. In some embodiments, user interface 700 may be configured to include one or more panels, such as panel 702, panel 704, panel 706, panel 708, explanations 710, etc.
[0113] In this example, for one or more of the various embodiments, the panel 702 may be configured to display a rank-ordered list of explanations for the marks of interest analyzed by the decision engine. In some embodiments, each explanation item may include a natural language commentary that may provide a potential explanation for the value associated with the mark of interest as determined by the decision engine. Similarly, in some embodiments, if the decision engine may not be able to determine a potential explanation, the panel 702 may be configured to display an explanation to that effect.
[0114] In one or more of the various embodiments, the text for the explanatory commentary can be based on a template such that field names or labels that can be associated with the mark or a description of the mark can be included in the explanatory commentary.
[0115] In one or more of various embodiments, panel 704 may be configured to include further explanations or visualizations that may be related to the marks analyzed by the decision engine. In some embodiments, a panel such as panel 706 may include further explanatory commentary related to the mark, or one or more visualizations that may help explain the mark to a user. Also, in some embodiments, a panel such as panel 708 may include visualizations that help explain the mark. For example, panel 708 may include one or more alternative visualizations that help explain why the mark appeared abnormal.
[0116] In one or more of various embodiments, the decision engine, visualization engine, etc. may be configured to use specific visualization models or explanatory text / explanation templates for different decision models. In some embodiments, the visualization models or explanatory / explanation templates for decision models may be defined in the configuration information. Thus, explanatory / explanation text or visualizations included in the user interface 700 may be tailored to a particular organization, locale, etc.
[0117] In one or more of various embodiments, the decision engine or visualization engine may be configured to determine some or all of the content or styling of the user interface 700 via configuration information. Thus, in some embodiments, expository explanatory text or templates, panel layouts, visualizations, etc. may be configured differently depending on the needs of an organization, user, etc.
[0118] [Generalized behavior] 8-12 illustrate generalized operations for analyzing marks in a visualization based on data characteristics, according to one or more of various embodiments. In one or more of various embodiments, processes 800, 900, 1000, 1100, and 1200 described in conjunction with FIGS. 8-12 may be implemented or executed by one or more processors on a single network computer (or network monitoring computer), such as network computer 300 of FIG. 3. In other embodiments, these processes, or portions thereof, may be implemented or executed by multiple network computers, such as network computer 300 of FIG. 3. In still other embodiments, these processes, or portions thereof, may be implemented or executed by one or more virtualized computers, such as in a cloud-based environment. However, the embodiments are not so limited and various combinations of network computers, client computers, and the like may be utilized. Furthermore, in one or more of various embodiments, the processes described in conjunction with FIGS. 8-12 may be used to analyze marks in a visualization based on data characteristics in accordance with at least one of the various embodiments or architectures, such as those described in conjunction with FIGS. 4-7. Further, in one or more of the various embodiments, some or all of the operations performed by processes 800, 900, 1000, 1100, and 1200 may be performed, in part, by the decision engine 322, the visualization engine 324, the modeling engine 326, or one or more processors of one or more networked computers.
[0119] 8 illustrates a general flowchart of a process 800 for analyzing marks in a visualization based on data characteristics, according to one or more of the various embodiments. After a start block, in one or more of the various embodiments, at block 802, a visualization engine may be configured to generate one or more visualizations based on one or more visualization models or data sources. As described above, a visualization system may be configured to include one or more modeling engines, one or more data sources, one or more visualization engines, etc., that may be configured to generate visualizations based on one or more visualization models and data provided by one or more data sources.
[0120] In one or more of the various embodiments, the decision engine may be configured to determine one or more marks of interest within the one or more visualizations at block 804. In some embodiments, the marks of interest may be selected by a user.
[0121] In one or more of the various embodiments, the decision engine may be configured to automatically identify one or more marks that may appear to be inconsistent with other marks within the visualization. In some embodiments, the decision engine may be configured to perform operations that perform one or more heuristic evaluations to determine whether one or more marks may be identified as marks of interest. In some embodiments, the decision engine may be configured to highlight or otherwise indicate which marks may be marks of interest within the visualization user interface. The particular styling of the indication of potential marks of interest may vary depending on the organization and configuration information.
[0122] In some embodiments, marks of interest that are automatically determined by the decision engine may be considered potential marks of interest, and thus, in some embodiments, a user may be allowed to confirm whether a potential mark of interest should be determined by the decision engine.
[0123] At block 806, in one or more of the various embodiments, the decision engine may be configured to analyze the one or more marks of interest based on one or more decision models. In one or more of the various embodiments, the decision engine may be configured to execute the one or more decision models to decide on the marks of interest and determine explanations that may provide insight into how characteristics of the underlying data / data sources contributed to the marks of interest.
[0124] In one or more of the various embodiments, at block 808, the judgment engine may be configured to generate one or more judgment reports, which may include one or more visualizations or one or more explanatory notes associated with one or more marks. As mentioned above, in some embodiments, the judgment report may include an interactive user interface that allows a user to review the judgment results, which may include explanatory notes that may describe one or more characteristics of the marks of interest.
[0125] Control may then be returned to the calling process in one or more of the various embodiments.
[0126] FIG. 9 illustrates a flow chart of a process 900 for analyzing a mark utilizing a judgment model, according to one or more of the various embodiments. After a start block, in block 902, in one or more of the various embodiments, a judgment engine may be one or more judgment models and one or more marks of interest. As described above, in some embodiments, one or more judgment models may be defined for judging a mark. Thus, in some embodiments, the judgment engine may be configured to retrieve one or more judgment models from a data store or the like. In some embodiments, the judgment engine may be configured to determine a particular judgment model based on rules, conditions, etc., which may be provided via configuration information.
[0127] At block 904, in one or more of the various embodiments, the decision engine may be configured to evaluate one or more decision models based on the mark, the visualization model, the data sources, etc. In one or more of the various embodiments, the decision models may include or be associated with rules, conditions, computer readable instructions, etc. that the decision engine may execute or apply to determine the mark.
[0128] At decision block 906, in one or more of the various embodiments, if there may be additional judgment models to evaluate, control may loop back to block 904. Otherwise, control may flow to block 908. In some embodiments, the decision engine may be configured to terminate the decision early by omitting or skipping one or more judgment models. For example, in some embodiments, the decision engine may be configured to stop evaluating additional judgment models if a previously evaluated judgment model may be deemed to provide a sufficient explanation of the interest mark.
[0129] Thus, in one or more of the various embodiments, the decision engine may be configured to associate a confidence score with the decision result provided by the decision model. In some embodiments, the decision model may be configured to provide a confidence score indicating how well the decision model matches or explains the mark.
[0130] Additionally, in one or more of the various embodiments, the decision engine may be configured to maintain a separate set of confidence scores that can be combined with the confidence scores provided by the decision model. Thus, in some embodiments, the overall confidence score for a mark's decision may be a combination of the scores provided by the decision model and the scores provided by the decision engine.
[0131] For example, in some embodiments, the confidence score provided by the decision engine may be generated based on other factors or metrics that may be unavailable or irrelevant to the decision model, in some embodiments, such factors or metrics may be based on user feedback, organizational requirements (e.g., configuration information), metrics associated with organizational or community activity, etc.
[0132] In one or more of the various embodiments, the decision engine may be configured to filter and rank the results provided by the decision model at block 908. In one or more of the various embodiments, the decision model may be configured to provide one or more confidence scores that represent its own judgment of how well the explanation provided by the model matches the mark.
[0133] Furthermore, in one or more of the various embodiments, the decision engine may be configured to modify the confidence score provided by the decision model to provide a final confidence score.
[0134] Thus, in one or more of various embodiments, the decision engine may be configured to remove one or more explanations based on filtering out one or more decision models based on rules, conditions, etc. For example, in some embodiments, the decision engine may be configured to automatically filter out explanations associated with confidence scores below a defined threshold.
[0135] Additionally, in one or more of various embodiments, other metrics or features of one or more of the explanations, visualization models, data sources, data, users, organizations, etc. may be incorporated into conditions, rules, etc. that may be implemented to filter out one or more judgments or explanations. For example, in some embodiments, a filter may include conditions associated with one or more user roles. Thus, for example, a filter may be configured to be more inclusive for some user roles or less inclusive for other user roles. Thus, in this example, the number of explanations included in the judgment report may be increased for data scientists or reduced for regular users.
[0136] In some embodiments, other metrics or features used for filtering may be based on a variety of sources, including organizational preferences, user preferences, localization, user input, other configuration information, and the like.
[0137] Similarly, in one or more of various embodiments, the decision engine may be configured to rank order one or more descriptions based on various conditions, rules, metrics, or features. For example, in some embodiments, the descriptions may be rank ordered based on a confidence score, etc. Further, for example, in some embodiments, the one or more descriptions may be rank ordered based on a user preference, an organization preference, etc.
[0138] Similar to filters, in some embodiments, the various conditions, rules, metrics, or features used to rank order the descriptions may be based on a variety of sources, including organizational preferences, user preferences, localization, user input, other configuration information, etc.
[0139] In one or more of the various embodiments, the decision engine may be configured to generate a decision report at block 910. In one or more of the various embodiments, the decision report may include a variety of information, including a rank-ordered list of explanations, descriptions of one or more characteristics of the determined marks of interest, visualizations showing the marks of interest in different contexts or views, etc.
[0140] Control may then be returned to the calling process in one or more of the various embodiments.
[0141] 10 shows a flow chart of a process 1000 for adapting filtering or ranking of a judgment model based on monitoring of user interactions, according to one or more of the various embodiments. After a start block, in block 1002, in one or more of the various embodiments, a judgment engine may be configured to generate a judgment report based on an automatic evaluation of one or more interest marks. As described above, the judgment engine may be configured to provide information for generating an interactive report that includes one or more user interface features that allow a user to interact with the description.
[0142] Further, in one or more of the various embodiments, the interactive judgment report may include one or more user interface components that may enable a user to provide feedback information to grade the explanations. For example, in some embodiments, the interactive judgment report may enable a user to rate the explanations or visualizations using various grading systems such as helpful / unhelpful, rating scales (e.g., 1-100, stars, letter grades, etc.), natural language descriptions, etc.
[0143] At block 1004, in one or more of the various embodiments, the judgment engine may be configured to monitor one or more user interactions or user feedback that may be associated with the judgment report. As described above, the interactive judgment report may be configured to include a component or function that directly collects user feedback. For example, in some embodiments, a user may be enabled to grade the usefulness or correctness of one or more explanations. Thus, in one or more of the various embodiments, the judgment engine may monitor or record feedback associated with various portions of the judgment report. In some embodiments, the judgment engine may be configured to allow a user to provide an overall grade for the entire judgment report.
[0144] Further, in one or more of the various embodiments, the decision engine may be configured to passively monitor how one or more users interact with the decision report. In some embodiments, metrics of monitoring various user interactions may provide further insight into the performance or quality of decisions that may be provided by various decision models. For example, in some embodiments, if the monitored interactions indicate that the user is doing things like rejecting one or more explanations, re-sorting the explanation list, spending a lot of time reviewing lower ranked explanations, clicking help screens, performing multiple mark decisions in a short period of time, etc., it may indicate that the explanation commentary or decision model may not be satisfactorily explaining the mark. In contrast, monitored information indicating, for example, that the user is accepting the explanations without performing further confirmation actions or reviews may indicate that the decision report may be satisfactory.
[0145] In one or more of the various embodiments, the decision engine may be configured to provide or modify a confidence score based on the monitored interactions or feedback at block 1006. In one or more of the various embodiments, the decision engine may be configured to execute one or more formulas to generate a confidence score indicative of how well the decision model is performing.
[0146] Thus, in one or more of the various embodiments, the decision engine may be configured to increase or decrease the decision model confidence score based on user feedback or observed user activity. In some embodiments, the impact of different types of feedback or observed activity may vary depending on the type of feedback or observed activity.
[0147] In one or more of the various embodiments, the decision engine may be configured to provide or modify the confidence score based on one or more rules or actions, which may be defined in the configuration information.
[0148] In decision block 1008, in one or more of the various embodiments, if the confidence score for one or more judgment models is below a defined threshold, control may flow to block 1010, otherwise control may flow to block 1012.
[0149] At block 1010, in one or more of the various embodiments, the decision engine may be configured to discard or retrain one or more low scoring decision models. In some embodiments, the decision engine may be configured to exclude one or more low scoring decision models from use for a particular organization. Additionally, in some embodiments, the decision engine may be configured to globally exclude one or more decision models from use by some or all other organizations based on a confidence score that may be associated with one or more decision models.
[0150] In one or more of the various embodiments, rather than discarding the poorly scored judgment models, the judgment engine may be configured to indicate that one or more poorly scored judgment models may require retraining or recertification before they can be used to judge a mark. Thus, in some embodiments, the judgment engine may be configured to generate a notification or include retraining or recertification information in the judgment report.
[0151] In block 1012, in one or more of the various embodiments, the decision engine may be configured to utilize the confidence scores to filter or rank subsequently generated mark decisions or explanations. In one or more of the various embodiments, the decision engine may be configured to allow an organization or user to define thresholds for including or excluding decision model results from the decision model or decision report. Then, in one or more of the various embodiments, control may be returned to the calling process.
[0152] FIG. 11 shows a flow chart of a process 1100 for generating an expectation distribution for a judgment model according to one or more of the various embodiments. After a start block, in one or more of the various embodiments, in block 1102, a judgment engine may be provided with a judgment model and a mark of interest. As described above, the judgment engine may be configured to evaluate an ensemble of two or more judgment models to determine which judgment model may explain the occurrence of the mark of interest. Thus, in some embodiments, the judgment engine may be configured to evaluate each judgment model in the ensemble of models and rank them based on how well the mark of interest may be explained.
[0153] At block 1104, in one or more of various embodiments, the decision engine may be incrementally provided with some or all of the data that may be directly displayed in the visualization. In some embodiments, the visualization that may be displayed to the user may be constructed from one or more portions of the data source. For example, in some embodiments, the visualization may be generated based on some of the columns or fields that may be available in the data source. Thus, in some embodiments, the columns or fields that may be directly included in the visualization may be determined.
[0154] In one or more of various embodiments, the decision engine may be configured to incrementally add data included in a visualization to the evaluation dataset. For example, in some embodiments, if a displayed visualization may be based on five columns from a data source, the decision engine may be configured to evaluate a decision model based on two of the visualized columns, then three of the visualized columns, and so on.
[0155] In some embodiments, the decision engine may be configured to provide the data portions (e.g., columns or fields) in various sequences, such as the order in which they appear in the visualization, the order in which they appear in the data source, a random order, one or more sorted orders, etc. Thus, in some embodiments, the decision engine may be configured to determine the order in which the data portions may be added to the dataset based on rules included in the configuration information, etc.
[0156] In one or more of the various embodiments, the decision engine may be configured to utilize one or more decision models and the current dataset to provide a probability distribution of the marks of interest at block 1106. Thus, in some embodiments, the decision model may utilize data fields or columns in the current dataset to attempt to predict values of the marks of interest based on the current dataset.
[0157] Thus, in one or more of the various embodiments, a model may be utilized to generate a probability distribution that may predict the value of the mark of interest each time further data may be added to the evaluation dataset.
[0158] At decision block 1108, in one or more of the various embodiments, if the displayed data can be configured to be exhausted, control can flow to block 1110. If not, control can loop back to block 1104. For example, if the visualization associated with the interest mark included five columns, after each of the decision models in the ensemble has generated a predicted value distribution of the interest mark for each combination of data portions associated with the visualization. Note that the decision engine may be configured to utilize configuration information to determine the number, order, or type of combination of data portions used to predict the interest mark value. Furthermore, while in some embodiments, most of the examples described herein involve decision models that generate probability distributions, other types of models or predictors are contemplated, including models that generate single values and error ranges. Furthermore, in one or more of the various embodiments, it is generally contemplated that the decision engine may be configured to utilize a variety of predictive models as long as they are capable of predicting the value of the interest mark given a data set selected from the data source.
[0159] In one or more of the various embodiments, at block 1110, the decision engine may be configured to incrementally modify the model dataset for data not included in the visualization. In some embodiments, the data source may include additional data (e.g., columns or fields) that were not included in the visualization. In some cases, information in other columns or fields may explain the appearance of the mark in the visualization. Thus, these data portions may be incrementally added to the decision dataset, similar to that described at block 1104.
[0160] In one or more of the various embodiments, at block 1112, the decision engine may be configured to utilize the decision model to generate one or more probability distributions based on the incrementally revised data set. Thus, similar to that described at block 1106, the decision engine may be configured to utilize the decision data set and the decision model to predict values of the marks of interest.
[0161] In decision block 1114, in one or more of the various embodiments, if the remainder of the data portion associated with the interest mark has been exhausted, control may be returned to the calling process. Otherwise, control may loop back to block 1110. See the discussion of decision block 1108 for further details.
[0162] 12 shows a flowchart of a process 1200 for comparing the results of a decision model according to one or more of the various embodiments. After a start block, in block 1202, in one or more of the various embodiments, a decision engine can be configured to generate various expected value distributions, as described above.
[0163] At block 1204, in one or more of the various embodiments, the decision engine may be configured to generate a model performance score based on the amount of information provided by the best predictions of the given model. In some embodiments, the amount of information provided by different models may be compared by calculating the inherent randomness (e.g., entropy) of the probability distributions generated by the given model. Thus, in one or more of the various embodiments, the decision engine may be configured to compare different models using entropy. In some embodiments, the specific mechanism for calculating the entropy for a given model and its results may vary depending on the model type. However, one skilled in the art may be expected to understand that the decision engine may be configured to perform one or more conventional or well-known information theoretic calculations to estimate generating an entropy measure for a given probability distribution. In some embodiments, the decision engine may be configured to utilize one or more rules, instructions, etc. defined in the configuration information to determine an entropy value for a given probability distribution or decision model. Thus, in some embodiments, the decision engine may be configured to utilize one or more non-conventional or custom methods to calculate entropy.
[0164] In some embodiments, the amount of information provided by a decision model prediction may be expressed or measured using traditional or well-known information theoretic units such as bits, nats, dits, etc., which may allow for expressing the amount of information contained in the prediction. Thus, in some embodiments, the amount of information provided by different models or distributions may be compared.
[0165] At block 1206, in one or more of various embodiments, the decision engine may be configured to generate a model complexity score for each decision model based on the complexity associated with the provided prediction. Information theory provides various mechanisms for measuring the complexity of a predictive model that may be utilized to fairly compare decision models. In some embodiments, complexity may be considered to be a measurement of how difficult it is for a model to generate a given result. Thus, in some embodiments, complexity may be measured based on various factors including the number of inputs, the number of parameters, etc.
[0166] Further, in one or more of various embodiments, the complexity score may reflect how complex a proposed explanation for a mark of interest is. For example, in some embodiments, a proposal that suggests that a mark of interest is highly dependent on one other data portion (e.g., a column) may be considered less complex than a proposal that depends on two or more other data portions.
[0167] In one or more of various embodiments, the decision engine may be configured to utilize rules, instructions, etc., that may be provided by the configuration information, to compute a measure of the complexity of the decision model. In general, in some embodiments, these may include well-known or conventional information-theoretic methods, as well as custom or proprietary methods.
[0168] At block 1208, in one or more of the various embodiments, the decision engine may be configured to provide an overall model score based on the associated information score and complexity score for each decision model. In one or more of the various embodiments, the overall score may be configured to select the decision model that provided the most information with the lowest complexity. For example, in some embodiments, the information score (see block 1204) and the complexity score (see block 1206) may be normalized or mapped to a scale of 0 to 100 and summed to provide an overall score for the decision model. However, in some embodiments, the decision engine may be configured to utilize rules, instructions, etc. provided via configuration information to calculate an overall score based on the information score or the complexity score.
[0169] At block 1210, in one or more of the various embodiments, the decision engine may be configured to modify one or more overall model scores based on one or more defined weights, heuristics, user preferences, etc. For example, as described above, user feedback may be utilized to weight the overall scores of one or more decision models. Similarly, in one or more of the various embodiments, one or more decision models may be observed to produce erroneous results in some conditions, overfitting in application of rare data, etc. In one or more of the various embodiments, the decision engine may be configured to modify the overall score of a particular decision model in a particular situation. Thus, in one or more of the various embodiments, the decision engine may be configured to utilize one or more rules, instructions, etc. provided via configuration information to determine whether the overall model score should be modified.
[0170] At block 1212, in one or more of the various embodiments, the decision engine may be configured to rank-order the decision models based on the modified overall scores.
[0171] Control may then be returned to the calling process in one or more of the various embodiments.
[0172] It will be understood that each block in each flowchart diagram, and combinations of blocks in each flowchart diagram, can be implemented by computer program instructions. These program instructions may be provided to a processor to create a machine, whereby the instructions, when executed on the processor, create means for performing the operations specified in one or more blocks of each flowchart diagram. The computer program instructions may be executed by the processor to cause the processor to perform a series of operational steps to create a computer-implemented process, whereby the instructions, when executed on the processor, provide steps for performing the operations specified in one or more blocks of each flowchart diagram. The computer program instructions may also cause at least some of the operational steps illustrated in each flowchart diagram to be performed in parallel. Furthermore, some of the steps may be performed across two or more processors, such as may occur in a multi-processor computer system. Moreover, one or more blocks or combinations of blocks in each flowchart diagram can be executed simultaneously with other blocks or combinations of blocks, or even in a sequence different from that illustrated, without departing from the spirit or scope of the present invention.
[0173] Thus, each block in each flowchart diagram supports a combination of means for performing the specified operations, a combination of steps for performing the specified operations, and program instruction means for performing the specified operations. It will also be understood that each block in each flowchart diagram, and combinations of blocks in each flowchart diagram, can be implemented by dedicated hardware-based systems that perform the specified actions or steps, or a combination of dedicated hardware and computer instructions. The foregoing examples should not be construed as limiting or exhaustive, but are illustrative use cases to illustrate at least one implementation of various embodiments of the present invention.
[0174] Additionally, in one or more embodiments (not shown), the logic of the exemplary flow chart may be executed using an embedded logic hardware device, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable array logic (PAL), or the like, or a combination thereof, instead of a CPU. The embedded logic hardware device may directly execute its embedded logic to perform operations. In one or more embodiments, a microcontroller may directly execute its own embedded logic to perform operations, access its own internal memory and its own external input and output interfaces (e.g., hardware pins or a wireless transceiver) to perform operations, such as a system-on-a-chip (SOC).
Claims
1. A method for managing visualization of data by a computer including at least a memory storing instructions and one or more processors, the instructions, when executed by the one or more processors, causing the computer to: providing one or more visualizations based on data from a data source, the one or more visualizations including one or more marks associated with one or more values from the data source; determining a mark of interest from the one or more marks based on one or more characteristics of the one or more marks and the one or more visualizations; generating an overall model score for each of the one or more judgment models based on the model performance score and the model complexity score, the overall model score being modified based on one or more of weights, heuristics, or preferences, and the modified overall model score being utilized to provide a rank ordering of the one or more judgment models; utilizing the one or more judgment models to generate one or more judgment results of the one or more judgment models based on the marks of interest and data from the data source, each judgment result being associated with one or more scores based on a fit to data from the data source and a predicted value of the marks of interest; rank ordering the one or more decisions based on an association with the one or more scores; providing a report comprising a rank-ordered list of the one or more outcomes of the determination; Execute the method.
2. The step of generating one or more judgment results comprises: generating one or more natural language descriptions describing one or more characteristics of the marks of interest based on one or more description templates; including the one or more natural language explanations in the one or more decisions; The method of claim 1, further comprising:
3. The method of claim 1 , wherein providing the report further comprises generating one or more other visualizations associated with one or more of the one or more judgment models, the one or more judgment results, or the marks of interest.
4. When the instructions are executed by the one or more processors, the instructions further cause the computer to: monitoring feedback information associated with said reports; providing one or more other scores based on the feedback information; utilizing the one or more other scores to determine one or more modifications to the one or more outcomes of the decisions; The method of claim 1, further comprising:
5. The instructions, when executed by the one or more processors, further cause the computer to:
2. The method of claim 1, further comprising: filtering the one or more decisions based on the one or more scores, wherein each decision associated with a score below a defined threshold is excluded from the report.
6. The step of determining the marks of interest comprises: automatically analyzing the one or more values associated with the one or more marks; determining the marks of interest based on the automatic analysis; The method of claim 1, further comprising:
7. The instructions, when executed by the one or more processors, further cause the computer to: evaluating data associated with the marks of interest included in the data source and omitted from the visualization; generating a portion of the one or more decisions based on the evaluation; The method of claim 1, further comprising:
8. 1. A computer-readable non-transitory storage medium comprising instructions for managing visualization, the execution of the instructions by one or more processors performing operations, the operations including: providing one or more visualizations based on data from a data source, the one or more visualizations including one or more marks associated with one or more values from the data source; determining a mark of interest from the one or more marks based on one or more characteristics of the one or more marks and the one or more visualizations; generating an overall model score for each of the one or more judgment models based on the model performance score and the model complexity score, the overall model score being modified based on one or more of weights, heuristics, or preferences, and the modified overall model score being utilized to provide a rank ordering of the one or more judgment models; utilizing the one or more judgment models to generate one or more judgment results of the one or more judgment models based on the marks of interest and the data from the data source, each judgment result being associated with one or more scores based on a best fit to the data from the data source and the value of the marks of interest; rank ordering the one or more decisions based on an association with the one or more scores; providing a report comprising a rank-ordered list of the one or more outcomes of the determination; Including, A non-transitory computer-readable storage medium.
9. A computer for managing user visualization, a memory for storing at least instructions; one or more processors that execute instructions to perform operations; and the operations include: providing one or more visualizations based on data from a data source, the one or more visualizations including one or more marks associated with one or more values from the data source; determining a mark of interest from the one or more marks based on one or more characteristics of the one or more marks and the one or more visualizations; generating an overall model score for each of the one or more judgment models based on the model performance score and the model complexity score, the overall model score being modified based on one or more of weights, heuristics, or preferences, and the modified overall model score being utilized to provide a rank ordering of the one or more judgment models; utilizing the one or more judgment models to generate one or more judgment results of the one or more judgment models based on the marks of interest and the data from the data source, each judgment result being associated with one or more scores based on a best fit to the data from the data source and the value of the marks of interest; rank ordering the one or more decisions based on an association with the one or more scores; providing a report comprising a rank-ordered list of the one or more outcomes of the determination; Including, computer.
10. The step of generating one or more judgment results comprises: generating one or more natural language descriptions describing one or more characteristics of the marks of interest based on one or more description templates; including the one or more natural language explanations in the one or more decisions; The computer of claim 9, further comprising:
11. 10. The computer of claim 9, wherein the step of providing the report further comprises generating one or more other visualizations associated with one or more of the one or more judgment models, the one or more judgment results, or the marks of interest.
12. The one or more processors: monitoring feedback information associated with said reports; providing one or more other scores based on the feedback information; utilizing the one or more other scores to determine one or more modifications to the one or more outcomes of the decisions; 10. The computer of claim 9, further comprising instructions for executing operations including:
13. 10. The computer of claim 9, wherein the one or more processors execute instructions to perform operations further comprising: filtering the one or more judgment outcomes based on the one or more scores, wherein each judgment outcome associated with a score below a defined threshold is excluded from the report.
14. The step of determining the marks of interest comprises: automatically analyzing the one or more values associated with the one or more marks; determining the marks of interest based on the automatic analysis; The computer of claim 9, further comprising:
15. The one or more processors: evaluating data associated with the marks of interest included in the data source and omitted from the visualization; generating a portion of the one or more decisions based on the evaluation; 10. The computer of claim 9, further comprising instructions for executing operations including:
Citation Information
Patent Citations
Diagnosis device, diagnosis method, and computer program
JP2019016209A
Systems and methods for the estimation of user interest in graph theoretic structures
US20050134589A1