- 博客(18)
- 收藏
- 关注
原创 机器学习系列---数据的划分&&转换器与估计器&& K-近邻算法及举例
数据集划分 机器学习一般的数据集会划分为两个部分: **训练数据:**用于训练,构建模型 **测试数据:**在模型检验时使用,用于评估模型是否有效API sklearn.model_selection.train_test_splitsklearn数据集API介绍 sklearn.datasets 加载获取流行数据集datasets.load_*()获取小规模数据集,数据包含在datasets里;datasets.fetch_*(data_home=Non
2020-11-24 18:29:03 389 1
原创 机器学习系列---数据的特征工程&&降维(特征选择/主成分分析)&&Kaggle instacart例 &&机器学习算法分类
特征工程定义特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性意义直接影响模型的预测结果库Scikit-learn 库正题字典特征抽取作用: 对字典数据特征值化DictVectorizer.fit_transform(X)X:字典或者包含字典的迭代器返回值:返回sparse矩阵DictVectorizer.inverse_transform(X)X:array数组或者sparse矩阵返回值:转换之前数据格式DictVect
2020-11-18 20:30:23 707 2
原创 pandas的简单操作(3):数据整形、数据透视、时间序列、数据可视化、数据载入与保存
input:%matplotlib inlineimport numpy as npimport pandas as pdimport matplotlib as pltinput:tuples = list(zip(*[['bar','bar','baz','baz', 'foo','foo','qux','qux'], ['one','two','one','two', 'o
2020-11-09 00:25:29 452
原创 pandas简单操作(2):处理丢失数据、数据运算、数据合并、数据分组等
pandas简单操作(2):合并、分割、分类等input%matplotlib inlineimport numpy as npimport pandas as pdimport matplotlib as pltdates = pd.date_range(start ='20160301',periods = 6)df = pd.DataFrame(np.random.randn(6,4), index = datas, columns = list('ABCD'))inputdf1
2020-11-06 18:16:14 409 2
原创 pandas简单操作(1):创建、删除、处理等
pandas简单操作(1):创建、删除、处理等input:import pandas as pda = pd.Series([1,3,4,5,6])print(a)import osprint(os.path.abspath('.'))output: 0 1 1 3 2 4 3 5 4 6 dtype: int64 /Users/macinput:datas_1 = pd.date_ra
2020-11-06 17:08:34 813 2
原创 有效的山脉数组多种解法详解
Given an array A of integers, return true if and only if it is a valid mountain array.Recall that A is a mountain array if and only if:A.length >= 3There exists some i with 0 < i < A.length - 1 such that:A[0] < A[1] < … A[i-1] < A[i]
2020-11-04 18:06:39 433 1
原创 回文数算法题用Python3的五种解法
供读者参考"""解题思路: (五种实现方法)1. 转成字符串:a. 双向队列b. 双指针2. 不转字符串:a. 模拟字符串的双向队列(使用math库的log函数 获取整数的位数)b. 反转后面一半的整数(使用math库的log函数 获取整数的位数)c. 反转后面一半的整数(不适用log函数) (通过原整数x 与 reverse_x 的大小判断)"""class Solution: # 方法一: 将int转化成str类型: 双向队列 # 复杂度: O(n^2) [每次p
2020-11-03 10:29:11 294
原创 numpy的基础操作(定义、最大最小平均值、转置、排序、索引、合并、分割等)
numpy的简单操作定义一个多维矩阵import numpy as npa = np.array([2,23,4], [3,54,5], [4,24,1])定义array的typeimport numpy as npa =np.array([2,34,5],dtype=np.int)#a =np.array([2,34,5],dtype=np.float)输出数字为0或者1的矩阵import numpy as np#输出一个三行、四
2020-11-03 00:02:49 431 1
原创 树与树算法&&二叉树的层次遍历/广度遍历/深度遍历详解与代码实现
树与树算法树的概念树(tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树;比如说:树的术语节点的度:一个节点含有的子树的个数称为该节点
2020-10-29 19:53:41 948 4
原创 快速排序&&归并排序&&二分查找
快速排序算法思路:有一个游标Low和游标High,分别指向第一个元素和最后一个元素,先取一个Mid_value = 第一个值,然后Low指向的数据和Mid_value比较一下,如果Low < Mid_value, 那么Low +=1 , 因为小的值是排在左边的,否则,Low不动,High指向的数据和Mid_value比较一下,如果High < Mid_value, 那么High -= 1, 因为大的值是排在右边的。当High和Low重合的时候,则停止,把Mid_value的值放到这里来。然
2020-10-22 10:15:12 747
原创 冒泡排序&&选择排序&&插入排序&&希尔排序
排序算法排序算法的稳定性排序算法(Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是无法分辨的,比如像是整数,稳定性并不是一个问题。然而,假设以下的数对将要以他们的第一个数字来排序。(4, 1) (3, 1) (3, 7)(5, 6)在这个状况下,有可能产
2020-10-16 22:01:25 351
原创 栈与队列以及代码实现
栈与队列 定义 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。 由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。 队列(queue)是只
2020-10-15 23:15:29 371
原创 链表详解(续)
链表(续)双向链表上图为双向链表的结构示意图,便于我们理解,可以和之前的单向链表比较一下:一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值;而单链表的话只有一个链接,指向下一个节点。对于第一个节点,没有指向前的节点,因此它的第一个链接为空;对于最后一个节点,没有指向后的节点,因此它的第二个链接为空。代码实现class Node(object ):"""节点"""
2020-10-15 22:09:28 231
原创 链表详解&&与顺序表对比
链表单向链表p是头节点,指向第一个值,最后一个是伪节点,因为不指向地址。表元素域elem用来存放具体的数据链接域next用来存放下一个节点的位置(python中的标识)变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点...
2020-10-13 22:10:40 368 2
原创 Python中的顺序表介绍与操作
顺序表 针对相同类型数据: 上图中,7、2100、390按照顺序排列,通过地址寻找,这个顺序表的好处是,便于查找,适用于存储同一类型的数据。 所以,Li[0]即首地址指向的数据,即第一个数;Li[n] , n即偏移量, 顺序表的基本布局如下: 针对不同类型数据:(采用元素外置,如下图左边) 一个顺序表的完整信息包括两部分,一部分是表中的元素集合,另一部分是为实现正确操作而需记录的信息,即有关表的整体情况的信息,这部分信息主要包括元素
2020-10-12 22:03:46 653
原创 时间复杂度和大O表示法&&数据结构引入
Python数据结构与算法学习日记(一)一、时间复杂度(T)与大O表示法如果a+b+c=1000, a^2 + b^2 = c^2 , (a,b,c为自然数),如何求出所有a,b,c的组合?import time#start_time = time.time()for a = range(0,1001): for b = range(0,1001); for c = range(0,1001); if a+b+c=1000 and a**2+b**2=c**2: print
2020-10-11 15:54:31 589 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人