当前位置: 首页 > news >正文

机器学习、数据挖掘和统计模式识别学习(Matlab代码实现)

       目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码


💥1 概述

机器学习是让计算机在没有明确编程的情况下采取行动的科学。在过去的十年中,机器学习为我们提供了自动驾驶汽车,实用的语音识别,有效的网络搜索以及对人类基因组的理解大大提高。机器学习在今天是如此普遍,以至于你可能每天使用它几十次而不自知。许多研究人员还认为,这是朝着人类水平的人工智能取得进展的最佳方式。在本代码中,您将了解最有效的机器学习技术,并获得实施它们并让它们为自己工作的练习。更重要的是,您不仅将学习学习的理论基础,还将获得快速有效地将这些技术应用于新问题所需的实践知识。最后,您将了解硅谷在创新方面的一些最佳实践,因为它与机器学习和人工智能有关。本代码广泛介绍了机器学习、数据挖掘和统计模式识别。主题包括:(i)监督学习(参数/非参数算法,支持向量机,内核,神经网络)。(ii)无监督学习(聚类、降维、推荐系统、深度学习)。(iii)机器学习的最佳实践(偏差/方差理论;机器学习和人工智能的创新过程)。本课程还将借鉴众多案例研究和应用,以便您还将学习如何应用学习算法来构建智能机器人(感知、控制)、文本理解(网络搜索、反垃圾邮件)、计算机视觉、医学信息学、音频、数据库挖掘和其他领域。

📚2 运行结果

主函数部分代码:

%% Machine Learning Online Class

%  Exercise 6 | Spam Classification with SVMs

%

%  Instructions

%  ------------

%  This file contains code that helps you get started on the

%  exercise. You will need to complete the following functions:

%

%     gaussianKernel.m

%     dataset3Params.m

%     processEmail.m

%     emailFeatures.m

%

%  For this exercise, you will not need to change any code in this file,

%  or any other files other than those mentioned above.

%

%% Initialization

clear ; close all; clc

%% ==================== Part 1: Email Preprocessing ====================

%  To use an SVM to classify emails into Spam v.s. Non-Spam, you first need

%  to convert each email into a vector of features. In this part, you will

%  implement the preprocessing steps for each email. You should

%  complete the code in processEmail.m to produce a word indices vector

%  for a given email.

fprintf('\nPreprocessing sample email (emailSample1.txt)\n');

% Extract Features

file_contents = readFile('emailSample1.txt');

word_indices  = processEmail(file_contents);

% Print Stats

fprintf('Word Indices: \n');

fprintf(' %d', word_indices);

fprintf('\n\n');

fprintf('Program paused. Press enter to continue.\n');

pause;

%% ==================== Part 2: Feature Extraction ====================

%  Now, you will convert each email into a vector of features in R^n. 

%  You should complete the code in emailFeatures.m to produce a feature

%  vector for a given email.

fprintf('\nExtracting features from sample email (emailSample1.txt)\n');

% Extract Features

file_contents = readFile('emailSample1.txt');

word_indices  = processEmail(file_contents);

features      = emailFeatures(word_indices);

% Print Stats

fprintf('Length of feature vector: %d\n', length(features));

fprintf('Number of non-zero entries: %d\n', sum(features > 0));

fprintf('Program paused. Press enter to continue.\n');

pause;

%% =========== Part 3: Train Linear SVM for Spam Classification ========

%  In this section, you will train a linear classifier to determine if an

%  email is Spam or Not-Spam.

% Load the Spam Email dataset

% You will have X, y in your environment

load('spamTrain.mat');

fprintf('\nTraining Linear SVM (Spam Classification)\n')

fprintf('(this may take 1 to 2 minutes) ...\n')

C = 0.1;

model = svmTrain(X, y, C, @linearKernel);

p = svmPredict(model, X);

fprintf('Training Accuracy: %f\n', mean(double(p == y)) * 100);

%% =================== Part 4: Test Spam Classification ================

%  After training the classifier, we can evaluate it on a test set. We have

%  included a test set in spamTest.mat

% Load the test dataset

% You will have Xtest, ytest in your environment

load('spamTest.mat');

fprintf('\nEvaluating the trained Linear SVM on a test set ...\n')

p = svmPredict(model, Xtest);

fprintf('Test Accuracy: %f\n', mean(double(p == ytest)) * 100);

pause;

%% ================= Part 5: Top Predictors of Spam ====================

%  Since the model we are training is a linear SVM, we can inspect the

%  weights learned by the model to understand better how it is determining

%  whether an email is spam or not. The following code finds the words with

%  the highest weights in the classifier. Informally, the classifier

%  'thinks' that these words are the most likely indicators of spam.

%

% Sort the weights and obtin the vocabulary list

[weight, idx] = sort(model.w, 'descend');

vocabList = getVocabList();

fprintf('\nTop predictors of spam: \n');

for i = 1:15

    fprintf(' %-15s (%f) \n', vocabList{idx(i)}, weight(i));

end

fprintf('\n\n');

fprintf('\nProgram paused. Press enter to continue.\n');

pause;

%% =================== Part 6: Try Your Own Emails =====================

%  Now that you've trained the spam classifier, you can use it on your own

%  emails! In the starter code, we have included spamSample1.txt,

%  spamSample2.txt, emailSample1.txt and emailSample2.txt as examples. 

%  The following code reads in one of these emails and then uses your 

%  learned SVM classifier to determine whether the email is Spam or 

%  Not Spam

% Set the file to be read in (change this to spamSample2.txt,

% emailSample1.txt or emailSample2.txt to see different predictions on

% different emails types). Try your own emails as well!

filename = 'spamSample1.txt';

% Read and predict

file_contents = readFile(filename);

word_indices  = processEmail(file_contents);

x             = emailFeatures(word_indices);

p = svmPredict(model, x);

fprintf('\nProcessed %s\n\nSpam Classification: %d\n', filename, p);

fprintf('(1 indicates spam, 0 indicates not spam)\n\n');

🎉3 参考文献

​[1]谢宜鑫. 基于机器学习的建筑空调能耗数据挖掘和模式识别[D].北京交通大学,2019.

👨‍💻4 Matlab代码

http://www.lryc.cn/news/28673.html

相关文章:

  • Java修饰符-ai生成
  • kafka部署安装
  • 使用asio实现一个单线程异步的socket服务程序
  • 大型JAVA版云HIS医院管理系统源码 Saas应用+前后端分离+B/S架构
  • 1 网关介绍
  • Java中Scanner用法
  • malloc实现原理探究
  • Spring——整合junit4、junit5使用方法
  • 计算机网络的一些思考(待完善)
  • 【第一章】谭浩强C语言课后习题答案
  • 最新版本vue3+vite重构尚品汇(解决接口问题)第21-50集
  • 【超级猜图案例上半部分的实现 Objective-C语言】
  • 刷题笔记4 | 24. 两两交换链表中的节点、19. 删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
  • 15、正则表达式
  • javaWeb核心01-HTTPTomcatServlet
  • 深圳大学计软《面向对象的程序设计》实验16 期末复习
  • Linux基础命令(一)
  • RocketMQ Broker消息处理流程剩余源码解析
  • JQuery入门基础
  • kafka 构建双向SSL认证
  • 推荐一个.Net Core开发的Websocket群聊、私聊的开源项目
  • 华为OD机试Golang解题 - 事件推送 | 含思路
  • 将微信小程序页面转为图片
  • LINE、SDNE和struc2vec图嵌入算法学习笔记
  • Buuctf Younger-drive 题解
  • 数据结构与算法:二叉树专题
  • Cadence Allegro 导出Cadence Schematic Feedback Report详解
  • 《计算机系统基础》—— 运算
  • MSTP多进程讲解与实验配置
  • 【Python】软件测试必备:了解 fixture 在自动化测试中的重要作用