视频教程:【莫烦Python】Scikit-learn (sklearn) 优雅地学会机器学习
首先从安装sklearn入手,我用的是python3.7,需要安装numpy和scipy,安装之后,就可以用sklearn自带的数据了,就用它自带的鸢尾花了 程序示例(我是用Pycharm运行的):
1 | import numpy as np |
输出结果:
1 | [[5.1 3.5 1.4 0.2] |
有花的4种属性,可能是花的大小什么的,不是很懂。
再看看他的分类:
1 | print(iris_Y)##花的分类 |
输出结果:
1 | [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
0代表一类,1代表一类,2代表一类
我们要去学习花的四个属性搭配上他的类别,会预测出新的东西
这个函数分出了我们的用于学习的data和测试的data,测试数据比例占30%,训练数据占70%,这些数据被分成两部分的好处是他们不会互相影响
1 | X_train,X_test,Y_train,Y_test=train_test_split(iris_X,iris_Y,test_size=0.3)##train_data:所要划分的样本特征集 train_target:所要划分的样本结果 test_size:样本占比,如果是整数的话就是样本的数量 |
输出结果:
1 | [2 1 1 1 0 0 1 0 2 1 1 2 0 0 0 1 0 1 0 2 1 1 0 2 2 2 1 0 2 1 1 2 1 1 1 2 0 |
这里的数据是被打乱的,可以在机器学习过程中不会有排列在一起的影响
利用K邻近算法进行机器学习 下面进行分类:
1 | knn=KNeighborsClassifier()##机器学习命令 |
输出结果:
1 | [2 1 0 0 0 0 2 0 2 1 0 2 2 0 0 1 0 1 2 0 1 2 2 0 0 1 2 0 1 1 2 0 1 2 1 2 0 |
结果出现1-2位不同,预测得很好,机器学习只能大概模拟出数据,不能完全还原真实数据