JobPlus知识库 IT 工业智能4.0 文章
分析4个特征统计信息和状况

首先我们知道iris数据集包含三种花种类,每种花对应50个样本数据,每个数据包含4个特征数据,


#Definiation of COLs:

#1. sepal length in cm (花萼长)

#2. sepal width in cm(花萼宽)

#3. petal length in cm (花瓣长)

#4. petal width in cm(花瓣宽)


1)对比下单独每个特征下的最大最小值,观察对应每种花是否有清晰的界限

[python] 

  1. from sklearn import datasets  
  2. import matplotlib.pyplot as plt  
  3. import numpy as np  
  4. from matplotlib import cm  
  5.   
  6. iris = datasets.load_iris()  
  7. irisFeatures = iris["data"]  
  8.   
  9. irisFeaturesName = iris["feature_names"]  
  10. irisLabels = iris["target"]  
  11.   
  12. def scatter_plot(dim1, dim2):  
  13.     for t,marker,color in zip(range(3),">ox","rgb"):  
  14.            # zip()接受任意多个序列参数,返回一个元组tuple列表  
  15.         # 用不同的标记和颜色画出每种品种iris花朵的前两维数据  
  16.         # We plot each class on its own to get different colored markers  
  17.         plt.scatter(irisFeatures[irisLabels == t,dim1],  
  18.                     irisFeatures[irisLabels == t,dim2],marker=marker,c=color)  
  19.     dim_meaning = {0:'setal length',1:'setal width',2:'petal length',3:'petal width'}  
  20.     plt.xlabel(dim_meaning.get(dim1))  
  21.     plt.ylabel(dim_meaning.get(dim2))  
  22.   
  23. #同一个特征,在不同的花种类中的最大最小分布  
  24. def getMax_Min(feature_No): #每次比较一列特征,在不同种类花 的最大最小值  
  25.     max_y1 = max(iris.data[:50,feature_No])  
  26.     min_y1 = min(iris.data[:50,feature_No])  
  27.     max_y2 = max(iris.data[50:100,feature_No])  
  28.     min_y2 = min(iris.data[50:100,feature_No])      
  29.     max_y3 = max(iris.data[100:150,feature_No])  
  30.     min_y3 = min(iris.data[100:150,feature_No])   
  31.   
  32.     return max_y1,min_y1,max_y2,min_y2,max_y3,min_y3  
  33.     ''''' 
  34.     print('================ %s ' % iris.feature_names[feature_No]) 
  35.     print('------%s'%iris.target_names[0]) 
  36.     print(max_y1) 
  37.     print(min_y1) 
  38.     print('------%s'%iris.target_names[1]) 
  39.     print(max_y2) 
  40.     print(min_y2) 
  41.     print('------%s'%iris.target_names[2]) 
  42.     print(max_y3) 
  43.     print(min_y3) 
  44.     '''  
  45.   
  46. def main():  
  47.     for i in range(4): #每次传递一个特征列  
  48.         max_y1,min_y1,max_y2,min_y2,max_y3,min_y3 = getMax_Min(i)  
  49.   
  50.         label = ['Max-setosa','Min-setosa','Max-versicolor','Min-versicolor','Max-virginica','Min-virginica']  
  51.         x = [max_y1,min_y1,max_y2,min_y2,max_y3,min_y3]  
  52.         colormap = [4,4,2,2,3,3]  
  53.         idx = np.arange(len(x))  
  54.         color = cm.jet(np.array(colormap)/max(colormap))  
  55.         plt.barh(idx, x, color=color)  
  56. #        plt.barh(idx, x)  
  57.         plt.yticks(idx+0.4,label,rotation=60)  
  58.         plt.grid(axis='x')  
  59.         plt.xlabel('value')  
  60.         plt.ylabel('Type of flower')  
  61.         plt.title(str(iris.feature_names[i]))  
  62.           
  63.         plt.show()  
  64.     #========================  
  65.     plt.figure(1)  
  66.     plt.subplot(231)  
  67.     scatter_plot(0,1)  
  68.     plt.subplot(232)  
  69.     scatter_plot(0,2)  
  70.     plt.subplot(233)  
  71.     scatter_plot(0,3)  
  72.     plt.subplot(234)  
  73.     scatter_plot(1,2)  
  74.     plt.subplot(235)  
  75.     scatter_plot(1,3)  
  76.     plt.subplot(236)  
  77.     scatter_plot(2,3)  
  78.   
  79.     plt.show()  
  80.   
  81. if __name__ == '__main__':  
  82.     main()  


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
6人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序