这学期数据挖掘和图像处理都涉及了机器学习,无奈上课走神,只能自学一哈了~
简单实例–k近邻算法预测鸢尾花品种
1.这个例子在做什么事
已有的鸢尾花三个品种(setosa、versicolor,virginica)的大量特征数据(花萼长度,宽度…),现在新发现野外有一个鸢尾花,测出这株花的特征数据,让python根据已有数据来预测这株花是三个品种中的哪一个
2.用什么算法来预测–k近邻法
原理很简单,在已有数据中找到和新发现的鸢尾花特征最相似的一株鸢尾花a,则a是什么品种算法就认为新花是什么品种
3.大致思路
鸢尾花的已知数据直接用load_iris()函数即可获取,不需要自己下载,将这些数据分为训练集和测试集,顾名思义一部分让机器训练,另一部分测试训练效果
我们可以看一看load_iris()
第一部分是data,也就是特征数值
第二部分是target,就是对应的品种,用0,1,2表示
4.源代码
环境:jupyter notebook(pycharm需要修改)
可能遇到的错误:No Module named ‘mglearn’,在anaconda文件夹打开anaconda promt.exe,输入 pip install mglearn,回车
from sklearn.datasets import load_iris
iris_dataset = load_iris()
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)
import numpy as np
import pandas as pd
import mglearn
from pandas import DataFrame
iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1