机器学习算法(九)特征降维——PCA 与 LDA

前言 在做任何机器学习算法训练之前,无论该算法模型是分类、回归还是聚类,我们都需要从原始数据中提取数据特征,然后将提取的特征组合成特征向量的形式输入到模型中进行训练。但是现实中往往会存在这么一个问题:原始数据特征的维度特别高,不利于模型的训练。这时候我们需要对原始数据的特征向量进行降维处理,然后将降维后的数据输入到模型中进行训练,得出最终的训练模型。 PCA 与 LDA 算法就是在这种需求之下...
分类: 其他 发布时间: 07-30 23:07 阅读次数: 0

数据挖掘岗面试总结

算法面试注意细节 算法工程师岗位(机器学习、数据挖掘、数据分析等)面试主要包含两大块:首先是基本的 Coding 能力;其次就是机器学习算法的理论与应用能力。 基本的 Coding 能力考察,主要是让你写一些数据结构与算法设计的常见算法题,比如链表类、二叉树、排序、查找、动态规划等。这方面建议《剑指 Offer》+ LeetCode 结合的方式进行练习。 机器学习算法理论与应用能力不用说,应...
分类: 其他 发布时间: 07-30 23:07 阅读次数: 0

数据挖掘(一)如何学习“机器学习”

以模型为驱动,了解“机器学习”的本质 初次学习模型,不必贪多。对于经典模型,一定要搞清楚其问题域、模型函数、目标函数、训练算法……潜入到数学公式推导的层面,对每一步的公式变换和对应物理意义有所理解,然后再去实践。 这一个个的模型,就是机器学习的“肌肉”,我们要通过观察学习这一块块肌肉,以其为载体来了解机器学习的核心——将事物转化为数值,将关系、变换转化为运算——以事实(数据)为依据,以规章(算...
分类: 其他 发布时间: 07-30 23:07 阅读次数: 0

数据挖掘(二)如何用 Python 辅助学习机器学习

1. 安装 Python 运行环境 2. 编写第一个 Python 程序:“Hello world” 虽然有效代码只有:print(”hello world”)。 但注意,你需要尝试至少三种不同的运行方法: 在命令行直接运行; 编写一个 Python 文件,将 print hello world 封装为一个函数,通过 main 函数调用它来运行; 编写一个 class,将 print h...
分类: 其他 发布时间: 07-30 23:07 阅读次数: 0

数据挖掘(三)机器是如何学习的

什么是机器学习?字面理解,就是让机器自己学会某种东西。 更准确一点,机器学习就是:让计算机程序(机器),不是通过人类直接指定的规则,而是通过自身运行,习得(学习)事物的规律,和/或事物间的关联。 对人类而言,一个概念对应的是具体的事物,一般而言,人类对其有所认知的事物,都不是孤立的,互相之间有着各种各样的关联。 当我们对一个人说“苹果”的时候,TA 可能马上就会想到那个圆圆的,香甜的,有皮有...
分类: 其他 发布时间: 07-30 23:06 阅读次数: 0

数据挖掘(四)机器学习三要素之数据、模型、算法

机器学习三要素包括数据、模型、算法。简单来说,这三要素之间的关系,可以用下面这幅图来表示: 总结成一句话:算法通过在数据上进行运算产生模型。 数据 源数据 上一篇中,图1老鼠和其他动物和图2小马宝莉六女主就是现实中的两份样本集合。如果我们要训练“老鼠分类器”,或者做“小马种族聚类” 分析的话,它们就是原始数据(Raw Data)。 不过,我们之前也说了,计算机能够处理的是数值,而...
分类: 其他 发布时间: 07-30 23:06 阅读次数: 0

数据挖掘(五)模型的获取和改进

“应用机器学习技术”这件事情,具体到微观的行为,其实就是:使用机器学习模型来预测数据,得到预测结果。然后,预测结果可能会作为下一步业务逻辑的依据。 要使用机器学习模型,首先要获得它。在有了数据和算法的情况下,我们需要通过一个过程来获得模型,这个过程就叫做:训练。 获取模型的过程 数据 + 算法 => 模型 获得模型的过程——训练——是将算法应用到数据上进行运算的过程。 笼统而言...
分类: 其他 发布时间: 07-30 23:06 阅读次数: 0

如何用链表实现A U B,和 A n B呢?

一、问题描述 假设有集合A = {1,2,3,4,5,  6,7, 8 ,9,10  },   集合B = {6,7,8,9,10,11,12,13,14,15},那么如何去求A  U   B,和 A n  B呢。如果这是一道数学题,相信每个人都可以很快的给出答案,但是当A集合有一千个数据呢,这时候就需要我们花费大量的时间去完成它。如何用代码去实现它呢,首先,得思考用什么方式去存储集合A
分类: 其他 发布时间: 07-30 23:05 阅读次数: 0

用链表实现冒泡排序!

一、问题描述 存储数据不仅数组可以,链表也行。那么如何用链表实现冒泡排序呢? 我们需要把数据存储在链表中,然后调用排序函数就可以了。但必须要注意链表与数组的不同点,链表没有下标,要想访问数据域必须通过节点来访问。 二、代码实现 #include #include typedef int ElemType; typedef struct Node { ElemType pData
分类: 其他 发布时间: 07-30 23:05 阅读次数: 0

关于双向链表的操作详解

一、概述     双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。它其实就是单链表的基础上加入了前驱指针,能够很方便的访问它的前一个数据节点。 从图中可以看出我们的struct需要3个成员:data、prio  、next; 我们再加入一些链表的基本操
分类: 其他 发布时间: 07-30 23:05 阅读次数: 0

循环链表的操作详解

一、概述 循环链表:循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。 从上图看出循环链表有两个成员:data 和 next 由此可创建循环链表和它的一些基本操作如下: 注明:它的操作其实与单链的操作差不多,只要注意判断标志即可。 #pragma once //循环链表,尾节点的next指向头 typedef struct C
分类: 其他 发布时间: 07-30 23:04 阅读次数: 0

八大排序之冒泡排序及其优化

一、概述 冒泡排序作为我们接触的第一个排序算法,相信大部分人都非常熟悉。         冒泡排序算法的运作如下:(从后往前)            比较相邻的元素。如果第一个比第二个大,就交换他们两个。            对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。             针对所有的元素重复以上的步骤,
分类: 其他 发布时间: 07-30 23:04 阅读次数: 0

不带头结点的链表操作及其逆置

一、概述 前面我们已经完成了带头结点的链表,今天我们来完成一下不带头结点的链表。事实上不带头结点的链表玉带头结点的链表差别在哪呢? (1)带头结点的单链表更容易操作,因为不带头结点的单链表在第一个节点的操作与其他节点不一样,在初始化的时候就必须把第一个结点创建出来,然后将它的next置空而不带头结点的单链表则直接置空即可。 (2)不带头结点的单链表,初始化时一定要返回指向头结点的地址,所以要
分类: 其他 发布时间: 07-30 23:04 阅读次数: 0

理解编译、运行与链接

一、概述 计算机系统三大部分:CPU 、内存、I/O。通常我们所写的程序都会加载到虚拟内存中,虚拟内存的大小是与CPU的位数有关,一般我们所用的计算机都是X86体系32位的linux操作系统,所以虚拟内存的大小是2^32 = 4G。我们一般把程序运行所需要的虚拟内存称为虚拟地址空间,它的大小也是4G,它又被分为用户空间(大小时3G)和内核空间(1G),那么它的构成是什么样的呢?
分类: 其他 发布时间: 07-30 23:04 阅读次数: 0

简单论述之单例模式分析

问题: 1.什么是单例模式? 单例模式是软件设计模式中的一种,它的核心结构只包含一个被称为单例的特殊类,通过单例模式保证系统中一个类只有一个实例。 对于系统中的许多类来说,只能有一个实例。比如:Windows系统资源管理器(如果不对对象唯一化,将会弹出多个窗口) (1)窗口内容完全不一致 =》 内存资源浪费 (2)窗口内容不一致  =》 意味着在某一时刻,系统有多种状态 =》与实际不符
分类: 其他 发布时间: 07-30 23:03 阅读次数: 0

栈和链栈的实现及其相关操作详解

一、概述 队列简称队(先进先出),是一种只允许在表的一端进行插入操作,在另一端进行删除操作的线性表。允许插入的一端被称为队尾,队尾元素由rear指出,允许删除的一端被称为队首,由front指出。 我们得struct需要三个数据成员:data(数组) 、队首指针(front)、队尾指针(rear)。 代码实现:
分类: 其他 发布时间: 07-30 23:03 阅读次数: 0

通过tcpdump的使用来了解tcp三次握手及四次挥手

一、tcpdump关于tcpdump的安装这里就不介绍了,网上很多。先介绍一下tcpdump的使用方法。二、tcpdump的使用服务器代码:#include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<sys/socket.h> #include<arpa/inet.h>...
分类: 其他 发布时间: 07-30 23:03 阅读次数: 0

c++STL的一点点分享(一)

如果有什么不对的地方,请各位大佬及时提出。 1、vector(向量容器) 底层实现: vector底层是一个以2倍方式增长的动态开辟的一维数组,它的初始大小是零,所以当你第一次插入的时候,它的变化是从0-》1,然后是从2-4-8-16。。。由于它的开辟效率不高,所以库里提供了reserve()方法和resize()方法。 提供的方法: push_back(); 尾插, pop_bac...
分类: 其他 发布时间: 07-30 23:02 阅读次数: 0

web服务和nginx跨域问题解决方法

1、web服务解决跨域问题(未用nginx) 在服务器页面的Response header中加入如下内容,可以实现POST跨域。 // 指定允许其他域名访问 response.addHeader("Access-Control-Allow-Origin", "*"); // 响应类型 response.addHeader("Access-Control-Allow-Methods", "POST...
分类: 编程语言 发布时间: 07-30 23:02 阅读次数: 0

LeetCode: 98. 验证二叉搜索树(C++)

题目: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3 输出: true 示例 2: 输入: 5 / \ 1 4   / \   ...
分类: 编程语言 发布时间: 07-30 23:02 阅读次数: 0