Sklearn数据集iris的数据索引
Scikit-learn(简称sklearn)是机器学习中常用的第三方模块库,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等算法。
Sklearn具有以下特点:
Sklearn安装:
安装要求:Python(>=2.7 or >=3.3)、NumPy (>= 1.8.2)、SciPy (>= 0.13.3)
安装命令:pip install -U scikit-learn
Sklearn通用学习模式:
Sklearn中包含多种机器学习方法,但各学习方法大致相同。首先引入需要训练的数据,Sklearn自带部分数据集,也可以通过相应方法进行构造。然后选择相应机器学习方法进行训练,训练过程中可以通过一些技巧调整参数,使得学习准确率更高。模型训练完成之后,便可预测新数据,还可以通过MatPlotLib直观地展示数据。最终,将已训练好的模型(Model)保存起来,可以移植到其他平台,不必重新训练。
引入数据及训练代码参考:
from sklearn import datasets # 引入数据集
from sklearn.model_selection import train_test_split # 将数据分为测试集和训练集
from sklearn.neighbors import KNeighborsClassifier # 利用邻近点方式训练数据
###加载数据###
iris=datasets.load_iris() # 加载iris鸢尾花数据,iris数据包含4个特征变量
iris_x = iris.data # 特征变量
iris_y = iris.target # 目标值
### 利用train_test_split将训练集和测试集切分开,test_size占30% ###
x_train,x_test,y_train,y_test=train_test_split(iris_x,iris_y,test_size=0.3)
###训练模型###
knn=KNeighborsClassifier() # 设定训练算法
knn.fit(x_train,y_train) # 填充测试数据进行训练
###预测数据###
print(knn.predict(x_test)) # 预测特征值
print(y_test) # 真实特征值
Sklearn datasets(数据集):
Sklearn提供一些标准数据,不必再从其他地方寻找数据进行训练。例如通过load_iris引入数据,可以很方便的返回数据特征变量和目标值。除了引入数据之外,还可以通过load_sample_images()来引入图片。除了sklearn提供的一些数据之外,还可以自己构造一些数据帮助机器学习。
from sklearn import datasets
###构造的参数可以根据需要调整###
x,y=datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=1)
import pandas as pd
from sklearn.datasets import load_iris
'''
加载iris鸢尾花数据,iris包含150朵鸢尾花的数据,具有4个特征向量,即sepal length(萼片长度)、sepal width(萼片宽度)、petal length(花瓣长度)、petal width(花瓣宽度)。iris.data包含150行4列的数据,每一列对应一个特征。iris.target是包含有150元素的一维数组,其元素值分别有0、1、2三种,分别代表山鸢尾(setosa)、变色鸢尾(versicolor)和维吉尼亚鸢尾(virginica)三种类型。
'''
iris = load_iris() # 引入iris数据
data = iris.data # 150行4列的数组
target = iris.target # 有150个元素的一维数组
# 创建数据框,指定列名
df = pd.DataFrame(data, columns=['sepal length','sepal width','petal length','petal width'])
df['Species'] = target # 为数据框新增一列
# 使用iloc[行索引位置, 列索引位置]方法,通过索引位置及切片,完成修改元素。
df.iloc[0:50, 4] = 'setosa'
df.iloc[50:100, 4] = 'versicolor'
df.iloc[100:, 4] = 'virginica'
index1 = df['Species'] == 'virginica' # 找出数据集中virginica种类的样本数据,构建逻辑表达式。
res1 = df.loc[index1, :] # loc[条件表达式, 列索引名称],通过逻辑值进行索引而获取数据
print(res1)
index2 = df['sepal width'] > 4 # 找出数据集中Sepal Width大于4的样本数据,构建逻辑表达式。
res2 = df.loc[index2, :] # 通过逻辑值进行索引而获取数据
print(res2)
博文最后更新时间: