数据探索与数据预处理

编程入门 行业动态 更新时间:2024-10-26 00:20:27

<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据探索与数据预处理"/>

数据探索与数据预处理

实验内容:

1.对鸢尾花数据集(iris.csv)的4个特征——萼片长度(sepal_len)、萼片宽度(sepal_wid)、花瓣长度(petal_len)、花瓣宽度(petal_wid)进行标准化。(分别使用最小最大规范化、零均值规范化、小数定标规范化)。

2.用主成分分析方法对鸢尾花数据集(iris.csv)进行维归约。

3.数据元组中age的值如下(按递增序):13,15,16,18,19,20,20,21,22,22,25,25,25,30,33,33,35,35,36,40,45,46,52,70。

问题:

(1)使用等深分箱(箱深为3)的平均值平滑方法对上述数据进行平滑。

(2)使用最小-最大规范化方法,将age的属性值35转换到[0,1.0]区间。

(3)使用z-score规范化方法转换age的属性值35,其中age的标准差为12.94年。

(4)使用小数定标规范化转换age属性值35。

(5)画出属性age宽度为10的等宽直方图。

实验代码:

#1
import numpy as np
import pandas as pddata=pd.read_csv('D:/Users/Administrator/Desktop/iris1.csv',usecols=[0,1,2,3])
#指定读取哪几列,不要列名 names=None
data=np.array(data,dtype='float64')#类型装换
#data=np.array(date[:,3])
#print(data)def min_max(data):M=(data-data.min())/(data.max()-data.min())print('最小最大规范化为:\n',M)def z_score(data):Z=(data-np.median(data))/np.var(data)print('零均值标准化为:\n',Z)def V_m(data):V=data/10print('小数定标规范化为:\n',V)min_max(data)
z_score(data)
V_m(data)
#2.
from sklearn import decompositiondef PCA(data):pca = decomposition.PCA()pca.fit(data)                                        pca.n_components = 4                    X_reduced = pca.fit_transform(data) return(X_reduced)
print(PCA(data))
#3.
import numpy as np
import math
from sklearn import preprocessing
import matplotlib.pyplot as pltage=np.array([13,15,16,18,19,20,20,21,22,22,25,25,25,30,33,33,35,35,36,40,45,46,52,70])
#x.sort()升序排序
# 等深分箱法,深度为3
# 数据长度除以深度3,则为划分的数组行数
depth = age.reshape(int(age.size/3),3)
# 划分后的等深箱
print('划分后的等深箱:\n',depth)# 按平均值平滑,初始化mean_depth
mean_depth = np.full([5,3],0)
#等深分箱法、均值平滑技术
for i in range(0,5):for j in range(0,3):#第i行算数平均值mean_depth[i][j]=int(depth[i].mean())
# 按平均值平滑后的等深箱print('问题1-平均值平滑后的等深箱:\n',mean_depth)dep=np.array([35,35])
depth_d=dep.reshape(int(dep.size/2),2)
min_max_sklearn=preprocessing.MinMaxScaler()
age_minmax=min_max_sklearn.fit_transform(depth_d)
print('问题2-最小-最大规范化为:\n',age_minmax)def z_score(dep):Z=(35-np.mean(age))/12.4print('问题3-z_score规范化为:\n',Z)def V_m(dep):V=dep/100print('问题4-小数定标规范化为:\n',V)z_score(dep)
V_m(dep)#问题5--直方图fig = plt.figure(figsize=(9,4))plt.hist(age,bins = 10,rwidth=10) # 指定条形的相对宽度plt.title('年龄直方图');
plt.xlabel("年龄")
plt.ylabel("个数")
plt.show()

更多推荐

数据探索与数据预处理

本文发布于:2024-02-11 19:20:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1682888.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!