自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 【机器学习】word2vec(基于负采样的skip-Gram模型)—— python3 实现方案

import numpy as npfrom collections import Counterclass Word2vec: def __init__(self, dim=100, learning_rata=0.01, window_size=5, neg=10): self.dim = dim # 词向量维度 self.learning_...

2018-11-16 20:35:06 2314

原创 【机器学习】CNN(简化模型)—— python3 实现方案

import numpy as npfrom scipy.io import loadmatclass CNN: def __init__(self, layer1=2, learning_rate=0.1, iters=10000): self.layer1 = layer1 # 第一个卷积层卷积核的个数 self.iters = iters ...

2018-11-13 11:04:24 2228

原创 【机器学习】DNN(三层多元分类模型)—— python3 实现方案

根据西瓜书《神经网络》章节反向传播的推导过程写成。书上推导了单样本的反向传播,本例实现了批量梯度下降,设置batch_size=1,就是单样本随机梯度下降。有别于其他分类算法的标签集,神经网络要对标签进行独热编码,在制作测试数据时要注意这点。本例使用sklearn生成的3000个3类别的训练数据,多次调试后,能达到90%的正确率。import numpy as npfrom s...

2018-11-10 18:43:02 3405

原创 【机器学习】PCA(特征值降维和奇异值降维)—— python3 实现方案

推荐这篇博文https://blog.csdn.net/shizhixin/article/details/51181379看了许多,这篇讲的更容易理解些,排版清晰,公式推导严谨。但纵观那么多文章,却没有提及怎么选择 维度“K”的,吴恩达的机器学习课程,提到用平方误差和 与 训练集的方差 的比例,来衡量选取k维后,对原数据的保留程度,但没有详细说明怎么做。后来还是在《机器学习实战》上找到了方法...

2018-11-09 16:12:07 1230

原创 【机器学习】GMM(一元高斯混合聚类)—— python3 实现方案

 看了很多博文,包括《统计学习知识》和西瓜书上对GMM算法的推导,总有些重要的步骤被略去(比如从公式一推到公式二,书上直接给出结果,却没有具体步骤),导致理解整个算法非常困难。后来幸运地发现一篇博文,使用了对我而言易于理解的语言,重要把整个推导过程疏通成功,最后在纸上手推了一遍,真是酣畅淋漓!算法实现很简单,结构跟K-均值形似,参数的推导过程不用体现在代码上,直接根据推导出来的公式计算就行(所以说...

2018-11-09 10:13:26 1738

原创 【机器学习】K-均值聚类(及二分K-均值聚类算法)—— python3 实现方案

参考《机器学习实战》,实现K均值聚类和二分K均值聚类。最后测试,对同一组数据,分别计算了两种算法的SSE(平方误差和),前者在150左右,后者在70左后。可见二分K-均值聚类的算法效果要好很多。import numpy as npimport pandas as pdclass KMeans: def __init__(self, k=4): self.k...

2018-11-08 12:01:37 1190

原创 【机器学习】KNN(线性扫描 )—— python3 实现方案

线性扫描KNN算法 。测试数据集为sklearn生成的随机分类数据集import numpy as npfrom collections import Counterfrom sklearn import datasetsclass KNN: def __init__(self, k=1): self.k = k # 近邻数量 def train...

2018-11-07 22:17:02 310

原创 【机器学习】朴素贝叶斯(多分类版本)—— python3 实现方案

根据《统计学习方法》第四章朴素贝叶斯算法流程写成,引入贝叶斯估计(平滑处理)。本例旨在疏通算法流程,理解算法思想,故简化复杂度,只考虑离散型数据集。如果要处理连续型数据,可以考虑将利用“桶”把连续型数据转换成离散型,或者假设连续型数据服从某分布,计算其概率密度来代替贝叶斯估计。《机器学习实战》的朴素贝叶斯算法,是针对文本处理(垃圾邮件过滤)的算法,是二元分类(y=0或y=1),且特征的取值...

2018-11-07 20:07:26 6181 5

原创 【机器学习】GBDT回归树(基于CART单层决策树)—— python3 实现方案

本例实现了GBDT以平方误差为损失函数的回归功能,目的在于疏通算法流程。至于其他损失函数,只需要修改叶子节点的计算公式即可。对算法主要框架影响不大。基学习器选择的是单层CART回归树,分类准则是方差最小化。对于分类问题,同样也使用CART回归树,有别于回归问题的是,需要再添加一段将计算结果转换成概率的代码,与阀值比较后确定分类结果,该过程与逻辑回归类似。另外分类问题的损失函数一般是对数损失或指...

2018-11-06 22:17:05 618

原创 【机器学习】Adaboost(基于单层决策树,分类)—— python3 实现方案

有别于《机器学习实战》,按照《统计学习知识》关于Adaboost的讲解,先单独写了所有需要计算的值的函数,如gm,alpha,error等,最后再训练函数里组合起来,这样更易于算法的理解。测试数据是用sklearn生成的分类数据,可完美运行。import numpy as npfrom sklearn import datasetsclass Adaboost: def __...

2018-11-06 15:19:17 1259

原创 【机器学习】随机森林(基于CART分类树)—— python3 实现方案

以CART分类树为基学习器的随机森林.实现了随机森林的主要思想,如选取k个特征,使用包外数据验证准确率,投票法确定预测类别等.这次使用sklearn的鸢尾花数据集,得到非常不错的模型.供参考import numpy as npfrom collections import Counterfrom sklearn import datasetsclass RandomFore...

2018-11-05 20:42:17 2675

原创 【机器学习】决策树(基于ID3,C4.5,CART分类回归树算法)—— python3 实现方案

内含3种算法的核心部分.没有找到很好的测试数据.但就理清算法思路来说问题不大剪枝算法目前只实现了CART回归树的后剪枝.import numpy as npfrom collections import Counterfrom sklearn import datasetsclass DecisionTree: def __init__(self, algori...

2018-11-05 13:09:38 1997

原创 【机器学习】SVM(基于SMO算法)—— python3 实现方案

在上个版本的基础上修订,改正了一些错误,优化了一些代码结构,修改了一些注释。不厌其烦的详细注释,对入门来说还是挺友好的哈,欢迎指正!测试数据是吴恩达机器学习课程svm章节的作业。分别用高斯核函数与线性核函数进行测试,可以发现高斯核函数的稳定性和准确率明显较线性核函数好。import numpy as npfrom sklearn import datasetsclass ...

2018-11-04 10:47:24 693 1

原创 【机器学习】LR(逻辑分类&softmax分类)—— python3 实现方案

包含sigmoid和softmax模型,优化算法为批量梯度下降法使用数据是吴恩达机器学习第二第三节的作业。import numpy as npfrom sklearn import preprocessingfrom sklearn import datasetsclass LogisticRegression: def __init__(self, learning_...

2018-11-02 13:44:47 1822 2

原创 【机器学习】LR(线性回归)—— python3 实现方案

import numpy as npfrom sklearn import datasetsclass LinearRegression: def __init__(self, learning_rate=0.01, lamb=0.0001, iters=10000): self.learning_rate = learning_rate # 学习速率,默认值为...

2018-11-01 13:18:02 1087

原创 [leetcode]python3 算法攻略-二叉搜索树中第K小的元素

给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。方案一:中序排序后,返回第K-1个值class Solution(object): def kthSmallest(self, root, k): """ :type root: Tr...

2018-08-03 10:31:33 931

原创 [leetcode]python3 算法攻略-填充同一层的兄弟节点

填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。说明:你只能使用额外常数空间。 使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。 你可以假设它是一个完美二叉树(即所有叶子节点都在同一层,每个父节点都有两个子节点)。方案一:利...

2018-08-03 10:19:35 285

原创 [leetcode]python3 算法攻略-从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。方案一:参考了别人的,感觉有点问题[3, 9, 20, 15, 7],  [9, 15, 3, 20, 7]class Solution(object): def buildTree(self, preorder, inorder): if inorder == []: return None...

2018-08-01 10:36:44 280

原创 [leetcode]python3 算法攻略-二叉树的锯齿形层次遍历

给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。方案一:在层次遍历的基础上,添加一个变量用于判断当前层是奇数层还是偶数层class Solution(object): def zigzagLevelOrder(self, root): """ :type root: TreeN...

2018-08-01 09:37:06 416

原创 [leetcode]python3 算法攻略-中序遍历二叉树

给定一个二叉树,返回它的中序 遍历。方案一:递归算法class Solution(object): def inorderTraversal(self, root): """ :type root: TreeNode :rtype: List[int] """ if root is None: ...

2018-07-31 09:38:36 466

原创 [leetcode]python3 算法攻略-相交链表

编写一个程序,找到两个单链表相交的起始节点。方案一:class Solution(object): def getIntersectionNode(self, headA, headB): """ :type head1, head1: ListNode :rtype: ListNode """ if...

2018-07-31 09:12:14 328 1

原创 [leetcode]python3 算法攻略-奇偶链表

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。方案一:class Solution(object): def oddEvenList(self, head): ...

2018-07-30 09:44:13 822

原创 [leetcode]python3 算法攻略-两数相加

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。方案一:class Solution(object): def addTwoNumbers(self, l1, l2): """ :type l1: ListNode ...

2018-07-30 08:33:51 486

原创 [leetcode]python3 算法攻略-递增的三元子序列

给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。方案一:res[0]存储递增序列的最小起点,res[1]存储递增序列第二位的最小值class Solution(object): def increasingTriplet(self, nums): """ :type nums: List[int] :rtype...

2018-07-29 09:34:06 1454 2

原创 [leetcode]python3 算法攻略-最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。方案一:class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: str """ n = len(s) ...

2018-07-29 08:48:08 688 1

原创 [leetcode]python3 算法攻略-无重复字符的最长子串

给定一个字符串,找出不含有重复字符的最长子串的长度。方案一:找到规律即可。class Solution(object): def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int """ res = '' m...

2018-07-28 09:13:51 750

原创 [leetcode]python3 算法攻略-字母异位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。方案一:对字符串排序class Solution(object): def groupAnagrams(self, strs): """ :type strs: List[str] :rtype: List[List[str]] "...

2018-07-28 09:12:09 172

原创 [leetcode]python3 算法攻略-矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。方案一:先找到 元素0的索引,再置零class Solution(object): def setZeroes(self, matrix): """ :type matrix: List[List[int]] :rtype: vo...

2018-07-27 08:48:11 1183

原创 [leetcode]python3 算法攻略-三数之和

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。方案一:class Solution(object): def threeSum(self, nums): """ :type nums: List[int] :rtype...

2018-07-27 08:29:13 1146

原创 [leetcode]python3 算法攻略-缺失数字

给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。方案一:利用总和求解class Solution(object): def missingNumber(self, nums): """ :type nums: List[int] :rtype: int ...

2018-07-26 08:21:07 249

原创 [leetcode]python3 算法攻略-有效的括号

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。方案一:如栈出栈的思路,没有想到```https://www.cnblogs.com/bozhou/p/6958405.htmlclass Solution(objec...

2018-07-25 10:04:01 753 1

原创 [leetcode]python3 算法攻略-杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。方案一:给通过给i-1行左右补组0,然后列表解析的方式一步到位得到第i行class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: List[List[i...

2018-07-25 09:23:35 440

原创 [leetcode]python3 算法攻略-颠倒二进制位

颠倒给定的 32 位无符号整数的二进制位。方案一:class Solution: # @param n, an integer # @return an integer def reverseBits(self, n): return int(bin(n)[2:][::-1]+'0'*(32-len(bin(n)[2:])),2)方案二:...

2018-07-24 08:08:25 532

原创 [leetcode]python3 算法攻略- 汉明距离

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。方案一:按为转换成二进制,再用str.count()直接统计1的个数class Solution(object): def hammingDistance(self, x, y): """ :type x: int ...

2018-07-24 07:52:02 1236

原创 [leetcode]python3 算法攻略-位1的个数

编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。方案一:使用位运算符>>class Solution(object): def hammingWeight(self, n): """ :type n: int :rtype: int """ ...

2018-07-22 08:50:21 213

原创 [leetcode]python3 算法攻略-罗马数字转整数

罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。...

2018-07-22 08:26:24 346

原创 [leetcode]python3 算法攻略-3的幂

给定一个整数,写一个函数来判断它是否是 3 的幂次方。你能不使用循环或者递归来完成本题吗?方案一:对n取以3为底的对数k, 若3**k == n, 则该数为3的幂次方class Solution(object): def isPowerOfThree(self, n): """ :type n: int :rtype: bool...

2018-07-21 09:36:22 920

原创 [leetcode]python3 算法攻略-计数质数

统计所有小于非负整数 n 的质数的数量。方案一:厄拉多塞筛法   参考:https://blog.csdn.net/github_39261590/article/details/73864039class Solution(object): def countPrimes(self, n): """ :type n: int :r...

2018-07-21 09:04:33 991

原创 [leetcode]python3 算法攻略-Fizz Buzz

写一个程序,输出从 1 到 n 数字的字符串表示。1. 如果 n 是3的倍数,输出“Fizz”;2. 如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。方案一:class Solution(object): def fizzBuzz(self, n): """ :type n: int...

2018-07-20 08:49:00 320

原创 [leetcode]python3 算法攻略-最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。方案一:时间复杂度O(n)class MinStack(object): def __init__(self): ...

2018-07-20 08:35:26 720

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除