鱼C论坛

 找回密码
 立即注册
查看: 1350|回复: 0

数据挖掘(一)

[复制链接]
发表于 2019-8-4 14:49:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Julia999 于 2019-8-4 14:49 编辑
数据挖掘流程(一)数据读取:
读取数据,并进行展示
统计数据的各项指标
明确数据规模与要完成的任务
(二)特征理解分析
单特征分析,逐个变量分析对其结果的影响
多变量统计分析,综合考虑多种情况影响
统计绘图得出结果
(三)数据清洗与预处理
对缺失值进行填充
特征标准化/归一化
分析特征之间的相关性
(四)建立模型
特征数据与标签的准备
数据集切分
多种建模算法对比
继承策略等方案改进


Numpy:科学计算库  主要用来做矩阵运算   我们的数据就是行(样本)和列(特征)组成的,那么数据本身就是一个矩阵
Pandas:数据分析处理库  (相当于在Numpy的基础上再对函数进行了封装)
Matplotlib:可视化库
Seaborn-可视化库 更简单的可视化库封装上Matplotlib基础之上
Scikit-Learn-机器学习库 非常实用的机器学习库,这里面包含了基本上所有的机器学习算法
  1. import numpy

  2. data=numpy.genfromtxt('haberman1.txt',delimiter=',',dtype=str)
  3. print(type(data))
  4. print(data)
  5. print(help(numpy.genfromtxt))
  6. #将第2行3列的数据取出来
  7. data1=data[1,2]
  8. print(data1)
  9. #取出第一列和第二列
  10. data2=data[:,0:1]


  11. vector=numpy.array([1,2,3,4])
  12. matrix=numpy.array([1,2,3,4],[5,6,7,8])
  13. print(vector)
  14. print(matrix)
  15. print(vector.shape)
  16. print(matrix.shape)
  17. print(vector.dtype)
  18. #判断vector中有没有10
  19. vector==10
  20. #可以把返回的bool值当成索引
  21. equal_to_ten=(vector==10)
  22. print(equal_to_ten)
  23. print(vector[equal_to_ten])

  24. equal_to_ten_and_equal_to_five=(vector==10)&(vector==5)
  25. print(equal_to_ten_and_equal_to_five)
  26. equal_to_ten_or_equal_to_five=(vector==10)|(vector==5)
  27. print(equal_to_ten_or_equal_to_five)

  28. vector2=numpy.array(["1","2","3","4"])
  29. print(vector2.dtype)
  30. print(vector2)
  31. #类型转换
  32. vector2=vector2.astype(float)
  33. print(vector2.dtype)
  34. print(vector2)

  35. #求极值
  36. vector.min()

  37. #按行求和或者是按列进行求和
  38. matrix.sum(axis=1)  #按行求和
  39. matrix.sum(axis=0)
复制代码

  1. import numpy as np

  2. print(np.arange(15))
  3. a=np.arange(15).reshape(3,5)
  4. print(a)
  5. print(a.ndim) #维度
  6. print(a.dtype.name)
  7. print(a.size)  #有多少元素

  8. #初始化
  9. np.zeros((3,4))
  10. np.ones((2,3,4),dtype=np.int32)  #三维

  11. #构造出固定范围元素  最后一个参数表示多少个一加
  12. np.arange(10,30,5)

  13. np.random.random((2,3))
复制代码

  1. import numpy as np
  2. from numpy import pi
  3. #最后一个参数表示我需要产生多少个元素,间隔是平均取的
  4. np.linspace(0,2*pi,100)
  5. #矩阵的点乘和叉乘
  6. A=np.array([1,2],
  7.            [3,4])
  8. B=np.array([1,1],
  9.            [2,2])
  10. #对应位置的元素相乘得到的矩阵
  11. print(A*B)
  12. #矩阵的乘法
  13. print(A.dot(B))
  14. print(np.dot(A,B))
复制代码

  1. import numpy as np
  2. #np.floor表示向下取整
  3. a=np.floor(10*np.random.random(3,4))
  4. print(a)
  5. #将一个矩阵拉成一个向量
  6. print(a.ravel())
  7. #再将拉成向量的矩阵重新变成矩阵
  8. a.shape(6,2)
  9. print(a)
  10. #转置
  11. print(a.T)
复制代码

  1. import numpy as np
  2. a=np.floor(10*np.random.random(2,2))
  3. b=np.floor(10*np.random.random(2,2))
  4. print(a)
  5. print(b)
  6. #hstack横拼接
  7. #print(np.hstack((a,b)))
  8. #vstack纵拼接
  9. print(np.vstack((a,b)))

  10. #分割
  11. c=np.floor(10*np.random.random(2,12))
  12. print(c)
  13. #hsplit横着切
  14. #np.hsplit(c,3)将c平均切分成3份
  15. print(np.hsplit(c,3))
  16. #np.hsplit(c,(3,4)在指定位置切刀
  17. print(np.hsplit(c,(3,4)))
  18. #vsplit竖着切
复制代码


复制:
  1. import numpy as np
  2. a=np.arrange(12)
  3. b=a
  4. b.shape(3,4)
  5. #发现改变b的值a的也会改变,并且两个变量的id也是一样的
  6. print(a.shape)
  7. print(id(a))
  8. print(id(b))
  9. #浅复制
  10. #a和c的不是同一个id,但是a和c是共用了一堆值,所以改变其中一个另外一个也发生改变
  11. c=a.view()
  12. print(c is a)
  13. c.shape=(2,6)
  14. print(c.shape)
  15. print(a.shape)
  16. print(id(c))
  17. print(id(a))

  18. #如何让他们指向不一样,又使他们的改变不会影响到另外一个
  19. d=a.copy()
  20. print(d is a)
  21. d[0,0]=999
  22. print(d)
  23. print(a)
复制代码


排序和索引:
  1. import numpy as np
  2. data=np.sin(np.arange(20)).reshape(5,4)
  3. print(data)
  4. #找到索引最大所在的位置
  5. #axis=0按列进行计算
  6. ind=data.argmax(axis=0)
  7. print(ind)
  8. #找到每一列中最大的数
  9. data_max=data[ind,range(data.shape[1])]
  10. print(data_max)

  11. a=np.arange(0,40,10)
  12. print(a)
  13. #行扩展成原来的两倍,列也扩展成原来的两倍
  14. b=np.tile(a,(2,2))
  15. print(b)

  16. #排序
  17. c=np.array([4,3,5],[1,2,1])
  18. print(c)
  19. #默认是从小到大进行排序 按照横向排序
  20. d=np.sort(a,axis=1)
  21. print(d)

  22. #求最小值的索引
  23. j=np.argsort(a)
  24. print(j)
  25. print(a[j])
复制代码



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 15:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表