- •Аннотация
- •Оглавление
- •Глава 1.Интеллектуальный анализ данных и Data Mining 8
- •Глава 2. Обзор алгоритмов обобщения с «учителем» 29
- •Глава 3. Программная реализация алгоритма cn2 и abcn2 49
- •Глава 4. Тестирование работы алгоритма и исследование полученных результатов 60
- •Введение
- •Глава 1.Интеллектуальный анализ данных и Data Mining
- •1.1.1. Задача классификации и регрессии
- •1.1. Задачи Data Mining
- •1.1.2. Задача кластеризации
- •1.1.3. Задача поиска ассоциативных правил
- •1.2. Модели Data Mining
- •1.3. Методы Data Mining
- •1.4. Общий подход в прогнозирующих методах
- •1.5. Классификация алгоритмов качественного обобщения по признакам
- •1.5.1.Способы представления исходной информации в интеллектуальных системах
- •1.5.2.Варианты реализации систем обобщения
- •1.5.2.1 Обучение "без учителя": основные понятия
- •1.5.2.2. Обучение "с учителем": постановка задачи
- •1.6 Выводы
- •Глава 2. Обзор алгоритмов обобщения с «учителем»
- •2.1.1 Алгоритм древ
- •2.1.2. Описание алгоритма древ
- •2.2. Алгоритм id3(индукция решающих деревьев)
- •2.3 Алгоритм aq
- •2.3.1 Описание алгоритма
- •2.3.2 Псевдокод алгоритма
- •2.4 Алгоритм cn2
- •2.4.1 Описание алгоритма
- •2.4.2 Псевдокод алгоритма
- •2.5 Алгоритм abcn2
- •2.5.1 Особенности аргументированного обучения
- •2.5.2 Аргументирование примеров
- •2.5.3 Оценка условий формируемых правил
- •2.5.4 Алгоритм извлечения продукционных правил
- •2.6 Выводы
- •Глава 3. Программная реализация алгоритма cn2 и abcn2
- •3.1 Постановка задачи
- •3.2 Требования к системе
- •3.3 Среда разработки
- •3.4. Форматы входных и выходных данных
- •3.5 Интерфейс
- •3.6. Ввод информации об атрибутах
- •3.7.Ввод обучающей выборки и построение аргументированных продукционных правил
- •3.8.Получение набора аргументированных продукционных правил
- •3.9.Вкладка «Экзамен»
- •3.10. Выводы
- •Глава 4. Тестирование работы алгоритма и исследование полученных результатов
- •4.1. Исследование правильности построения продукционных правил
- •4.2. Оценка точности классификации примеров(с помощью алгоритма cn2)
- •4.2.1 Результат классификации в задаче monk1(cn2)
- •4.2.2 Результат классификации в задаче monk2(cn2)
- •4.2.3 Результат классификации в задаче monk3(cn2)
- •4.3. Оценка точности классификации примеров (с помощью алгоритма abcn2)
- •4.3.1 Результат классификации в задаче monk1(abcn2)
- •Ниже представлены аналогичные результаты тестирования для задачи monk3.
- •4.3.2 Результат классификации в задаче monk3(abcn2)
- •4.4 Выводы
- •Заключение
- •Список литературы
- •Пространство имён DataStructures
- •Пространство имён uc
- •Пространство имён PercentageConverter.Cs
- •Пространство имён AttrinuteTypesView
- •Пространство имён LearningExamplesView
- •Пространство имён ArguedLearningExamplesView
- •Пространство имён ExamineExamolesView
- •Пространство имён Log
- •Пространство имён NumericUpDown
- •Проект WpfApp
Пространство имён Log
Log.xaml
<UserControl x:Class="CN2.UC.Log.Log"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:CN2.UC.Log"
mc:Ignorable="d">
<UserControl.Resources>
<Image x:Key="SaveImage" Source="../../Images/Save_16x.png"/>
</UserControl.Resources>
<Grid>
<Menu x:Name="menu" Height="22" VerticalAlignment="Top">
<Label Content="Журнал" Padding="0"/>
<Button x:Name="buttonSaveLog" Margin="0,2,0,0" Content="{StaticResource SaveImage}" Height="16" Width="20" Click="buttonSaveLog_Click" ToolTip="Сохранить журнал в файл"/>
</Menu>
<ScrollViewer x:Name="scrollViewer" Margin="0,22,0,0">
<TextBlock x:Name="logTextBlock" TextWrapping="Wrap" Text="" Background="White"/>
</ScrollViewer>
</Grid>
</UserControl>
Log.xaml.sc
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Win32;
namespace CN2.UC.Log
{
/// <summary>
/// Interaction logic for Log.xaml
/// </summary>
public partial class Log : UserControl
{
public Log()
{
InitializeComponent();
}
/// <summary>
/// Очищает содержимое журнала.
/// </summary>
public void Clear()
{
logTextBlock.Text = string.Empty;
}
public string CorrectMessage(string message)
{
return message.EndsWith(Environment.NewLine) ? message : message + Environment.NewLine;
}
private void WriteColor(string message, Brush brush)
{
logTextBlock.Dispatcher.Invoke(
new Action(
() => logTextBlock.Inlines.Add(new Run( /*DateTime.Now + ": " + */CorrectMessage(message)) {Foreground = brush})));
scrollViewer.Dispatcher.Invoke(new Action(() => scrollViewer.ScrollToBottom()));
}
public void Write(string message)
{
WriteColor(message, Brushes.Black);
}
public void WriteOfftop(string message)
{
WriteColor(message, Brushes.Gray);
}
public void WriteError(string message)
{
WriteColor(message, Brushes.Red);
}
public void WriteSuccess(string message)
{
WriteColor(message, Brushes.Green);
}
public void WriteWarning(string message)
{
WriteColor(message, Brushes.YellowGreen);
}
public void WriteSection(string message)
{
WriteColor(message, Brushes.Blue);
}
public void WriteSubSection1(string message)
{
WriteColor(message, Brushes.CornflowerBlue);
}
public void WriteSubSection2(string message)
{
WriteColor(message, Brushes.DeepSkyBlue);
}
private void buttonSaveLog_Click(object sender, RoutedEventArgs e)
{
try
{
SaveFileDialog sfd = new SaveFileDialog()
{
Title = SerializationData.SaveLogFileDialogTitle,
Filter = SerializationData.LogFileDialogFilter,
FileName = "log" + DateTime.Now.ToFileTime()
};
Nullable<bool> sfdResult = sfd.ShowDialog();
if (sfdResult != null && sfdResult == true)
{
using (StreamWriter logFile = new StreamWriter(sfd.FileName))
{
logFile.Write(logTextBlock.Text);
}
}
}
catch (Exception ex)
{
WriteError(ex.Message);
}
}
}
}
