鸢尾花分类

第一次接触机器学习,看完了第一节内容 ,有点心虚,虽然啥也没看懂 ,但是大致思路还能看懂点 , Python 还没学多少就入手机器学习,确实没太大必要 ,但实在太无聊,闲着就看看.

鸢尾花  -- --- 我们的目标是构建一个机器学习模型 ,可以从已知品种的鸢尾花中的测试数据中进行学习 ,从而可以达到能够预测鸢尾花的品种 .  因为我们有已知品种的鸢尾花测试数据 , 所以这是一个监督学习的问题 ,我们要在多个选项中预测其中一个 . 这是一个分类的问题实例 . 可能的输出(鸢尾花的不同品种)叫做类别 .数据集中的每一朵鸢尾花都属于三个类别之一,所以这是一个三分类问题 .

我用 Anaconda 演示了代码 

 
 
# -*- coding: utf-8 -*-
import numpy as np import scipy import matplotlib import pandas as pd import sys import mglearn from sklearn.datasets import load_iris iris_dataset = load_iris() #print("keys of iris_dataset :\n{}".format(iris_dataset.keys())) target 键对应的值是一个字符串数组 #  里面包含是我们要预测的花的品种 print("Target names : \n{}".format(iris_dataset['target_names'])) #  feature_names  键对应的是一个字符串列表  对每一个特征进行说明 print("Feature_name  :\n {}".format(iris_dataset['feature_names']))
print("Type of data : \n {}".format(type(iris_dataset['data'])))
#data 数组的每一行对应一个花 , 列对应每一朵花的四个测试数据
print("Shape of data :{}".format(iris_dataset['data'].shape)) print("First five rows of data : \n{}".format(iris_dataset['data'][:5]))
#target 数组包含的是测试过的每一朵花的品种 ,也是一个 numpy 数组
print("Shape of target :{}".format(iris_dataset['target'].shape))
# 品种被转换成 从0 到2 的整数
print("Target :\n {}".format(iris_dataset['target']))
# 0 代表的是 setosa  1 代表的是 versicolor 2 代表的是 virginica from sklearn.model_selection import train_test_split x_train ,x_test ,y_train ,y_test = train_test_split(         iris_dataset['data'],iris_dataset['target'],random_state=0) #利用x_train 中的数据创建dataFrame # 利用iris_dataset.feasure_names 中的字符串对数据列进行标记 iris_dataframe = pd.DataFrame(x_train ,columns =iris_dataset.feature_names) # 利用DataFrame 创建散点图矩阵,按y_train 着色 grr = pd.scatter_matrix(iris_dataframe ,c = y_train , figsize = (15,15),marker ='o',                                             hist_kwds = {'bins':20},s =60 ,alpha =.8 ,cmap =mglearn.cm3 )   from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors =1) ''' scikit-learn 中所有的机器学习模型都在各自的类中实现 ,这些类被称为Estimator 类 k近邻分类算法 是在neighbor 模块中的KeighborsClassifier 中实现的 , 我们将这个类实例化为一个对象 然后才能用这个模型 , 参数就是邻居的数量
''' knn.fit(x_train ,y_train)
X_new = np.array([[5,2.9,1,0.2]]) print("X_new.shape: {}".format(X_new.shape)) prediction = knn.predict(X_new) print("Prediction :{}".format(prediction)) print("Prediiction target name: {}".format(iris_dataset['target_names'][prediction])) y_pred = knn.predict(x_test) print("Test set predictions : \n{}".format(y_train))
print("Test set score :{:.2f}".format(np.mean(y_pred == y_test)))
print("Test set score :{:.2f}".format(knn.score(x_test,y_test)))


猜你喜欢

转载自blog.csdn.net/qq_41661809/article/details/81034877
今日推荐