当前位置:   article > 正文

机器学习鸢尾花使用csv

机器学习鸢尾花使用csv

操作流程

  1. 下载鸢尾花数据集
  2. 导入需要的包
  3. 读取数据并查看数据大小和长度
  4. 划分训练集和测试集
  5. 使用模型
  6. 评估算法

下载鸢尾花数据集

链接:https://pan.baidu.com/s/1RzZyXsaiJB3e611itF466Q?pwd=j484 
提取码:j484 
--来自百度网盘超级会员V1的分享
  • 1
  • 2
  • 3

导入需要的包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
from sklearn import metrics 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

查看数据大小和长度

读取五列数据,由于csv文件比sklearn鸢尾花种多了id列,不需要
iris_data=pd.read_csv('iris.csv', usecols=[ 1, 2, 3, 4,5])
  • 1
查看数据集大小(150行5列)
iris_data.shape
# (150, 5)
  • 1
  • 2
数据详情
iris_data.head()
  • 1

在这里插入图片描述

划分训练集和测试集合

载入特征和标签集

X = iris_data[['sepal_length', 'sepal_width', 'petal_length', 'petal_width']]        		
y = iris_data['species']     

  • 1
  • 2
  • 3

划分为x和r(r是结果result的缩写,也就是这里的类别)

from sklearn.model_selection import train_test_split

X_train, X_test, r_train, r_test = train_test_split(X, r, random_state=0)
  • 1
  • 2
  • 3
x划分的结果,一共150行按3:1的比例,X_train是112行四列特征,X_test是这112行的类别,所以后面直接fit(X_train,r_train)即可完成模型训练
print("X_train shape: {}".format(X_train.shape))        # X_train #shape: (112, 4)
print("r_train shape: {}".format(r_train.shape))        # r_train #shape: (112,)

  • 1
  • 2
  • 3
r划分的结果,一共150行按3:1的比例,r_train是38行四列特征,r_test是这38行的类别,所以后面直接fit(x_test,r_test)即可完成测试集
print("X_test shape: {}".format(X_test.shape))         
 # X_test shape: (38, 4)
print("r_test shape: {}".format(r_test.shape))         
 # r_test shape: (38,)

  • 1
  • 2
  • 3
  • 4
  • 5

调用模型

  1. 这里使用knn算法

引入knn算法

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(n_neighbors=1)
  • 1
  • 2
  • 3

开始训练

knn.fit(X_train, r_train)
  • 1

开始用训练好的模型跑测试数据

r_pred = knn.predict(X_test)
print("Test set predictions: \n {}".format(r_pred))
  • 1
  • 2
结果
Test set predictions: 
 ['virginica' 'versicolor' 'setosa' 'virginica' 'setosa' 'virginica'
 'setosa' 'versicolor' 'versicolor' 'versicolor' 'virginica' 'versicolor'
 'versicolor' 'versicolor' 'versicolor' 'setosa' 'versicolor' 'versicolor'
 'setosa' 'setosa' 'virginica' 'versicolor' 'setosa' 'setosa' 'virginica'
 'setosa' 'setosa' 'versicolor' 'versicolor' 'setosa' 'virginica'
 'versicolor' 'setosa' 'virginica' 'virginica' 'versicolor' 'setosa'
 'virginica']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

模型评估

方法一

print("Test set score: {:.2f}".format(np.mean(y_pred == y_test)))   
# Test set score: 0.97
  • 1
  • 2

方法二

print('Test set score: {:.2f}'.format(metrics.accuracy_score(r_pred, r_test)))  
 # Test set score: 0.97
  • 1
  • 2

方法三

print("Test set score: {:.2f}".format(knn.score(X_test, r_test)))  
 # Test set score: 0.97

  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/482895
推荐阅读
相关标签
  

闽ICP备14008679号