数据挖掘(一)
本帖最后由 Julia999 于 2019-8-4 14:49 编辑数据挖掘流程(一)数据读取:
读取数据,并进行展示
统计数据的各项指标
明确数据规模与要完成的任务
(二)特征理解分析
单特征分析,逐个变量分析对其结果的影响
多变量统计分析,综合考虑多种情况影响
统计绘图得出结果
(三)数据清洗与预处理
对缺失值进行填充
特征标准化/归一化
分析特征之间的相关性
(四)建立模型
特征数据与标签的准备
数据集切分
多种建模算法对比
继承策略等方案改进
Numpy:科学计算库主要用来做矩阵运算 我们的数据就是行(样本)和列(特征)组成的,那么数据本身就是一个矩阵
Pandas:数据分析处理库(相当于在Numpy的基础上再对函数进行了封装)
Matplotlib:可视化库
Seaborn-可视化库 更简单的可视化库封装上Matplotlib基础之上
Scikit-Learn-机器学习库 非常实用的机器学习库,这里面包含了基本上所有的机器学习算法
import numpy
data=numpy.genfromtxt('haberman1.txt',delimiter=',',dtype=str)
print(type(data))
print(data)
print(help(numpy.genfromtxt))
#将第2行3列的数据取出来
data1=data
print(data1)
#取出第一列和第二列
data2=data[:,0:1]
vector=numpy.array()
matrix=numpy.array(,)
print(vector)
print(matrix)
print(vector.shape)
print(matrix.shape)
print(vector.dtype)
#判断vector中有没有10
vector==10
#可以把返回的bool值当成索引
equal_to_ten=(vector==10)
print(equal_to_ten)
print(vector)
equal_to_ten_and_equal_to_five=(vector==10)&(vector==5)
print(equal_to_ten_and_equal_to_five)
equal_to_ten_or_equal_to_five=(vector==10)|(vector==5)
print(equal_to_ten_or_equal_to_five)
vector2=numpy.array(["1","2","3","4"])
print(vector2.dtype)
print(vector2)
#类型转换
vector2=vector2.astype(float)
print(vector2.dtype)
print(vector2)
#求极值
vector.min()
#按行求和或者是按列进行求和
matrix.sum(axis=1)#按行求和
matrix.sum(axis=0)
import numpy as np
print(np.arange(15))
a=np.arange(15).reshape(3,5)
print(a)
print(a.ndim) #维度
print(a.dtype.name)
print(a.size)#有多少元素
#初始化
np.zeros((3,4))
np.ones((2,3,4),dtype=np.int32)#三维
#构造出固定范围元素最后一个参数表示多少个一加
np.arange(10,30,5)
np.random.random((2,3))
import numpy as np
from numpy import pi
#最后一个参数表示我需要产生多少个元素,间隔是平均取的
np.linspace(0,2*pi,100)
#矩阵的点乘和叉乘
A=np.array(,
)
B=np.array(,
)
#对应位置的元素相乘得到的矩阵
print(A*B)
#矩阵的乘法
print(A.dot(B))
print(np.dot(A,B))
import numpy as np
#np.floor表示向下取整
a=np.floor(10*np.random.random(3,4))
print(a)
#将一个矩阵拉成一个向量
print(a.ravel())
#再将拉成向量的矩阵重新变成矩阵
a.shape(6,2)
print(a)
#转置
print(a.T)
import numpy as np
a=np.floor(10*np.random.random(2,2))
b=np.floor(10*np.random.random(2,2))
print(a)
print(b)
#hstack横拼接
#print(np.hstack((a,b)))
#vstack纵拼接
print(np.vstack((a,b)))
#分割
c=np.floor(10*np.random.random(2,12))
print(c)
#hsplit横着切
#np.hsplit(c,3)将c平均切分成3份
print(np.hsplit(c,3))
#np.hsplit(c,(3,4)在指定位置切刀
print(np.hsplit(c,(3,4)))
#vsplit竖着切
复制:
import numpy as np
a=np.arrange(12)
b=a
b.shape(3,4)
#发现改变b的值a的也会改变,并且两个变量的id也是一样的
print(a.shape)
print(id(a))
print(id(b))
#浅复制
#a和c的不是同一个id,但是a和c是共用了一堆值,所以改变其中一个另外一个也发生改变
c=a.view()
print(c is a)
c.shape=(2,6)
print(c.shape)
print(a.shape)
print(id(c))
print(id(a))
#如何让他们指向不一样,又使他们的改变不会影响到另外一个
d=a.copy()
print(d is a)
d=999
print(d)
print(a)
排序和索引:
import numpy as np
data=np.sin(np.arange(20)).reshape(5,4)
print(data)
#找到索引最大所在的位置
#axis=0按列进行计算
ind=data.argmax(axis=0)
print(ind)
#找到每一列中最大的数
data_max=data)]
print(data_max)
a=np.arange(0,40,10)
print(a)
#行扩展成原来的两倍,列也扩展成原来的两倍
b=np.tile(a,(2,2))
print(b)
#排序
c=np.array(,)
print(c)
#默认是从小到大进行排序 按照横向排序
d=np.sort(a,axis=1)
print(d)
#求最小值的索引
j=np.argsort(a)
print(j)
print(a)
页:
[1]