实验一 感知器及其应用
博客班级 | 机器学习实验-计算机18级 |
---|---|
作业要求 | 实验一 感知器及其应用 |
作业目的 | 理解感知器算法原理,度量指标,最小二乘法,能实现感知器算法 |
学号 | 3180701230 |
一.实验目的
-
理解感知器算法原理,能实现感知器算法;
-
掌握机器学习算法的度量指标;
-
掌握最小二乘法进行参数估计基本原理;
-
针对特定应用场景及数据,能构建感知器模型并进行预测。
二.实验内容
-
安装Pycharm,注册学生版。
-
安装常见的机器学习库,如Scipy、Numpy、Pandas、Matplotlib,sklearn等。
-
编程实现感知器算法。
-
熟悉iris数据集,并能使用感知器算法对该数据集构建模型并应用。
三.实验要求
- 按实验内容撰写实验过程;
- 报告中涉及到的代码,每一行需要有详细的注释;
- 按自己的理解重新组织,禁止粘贴复制实验内容!
四.实验过程
import pandas as pd #给引入的包pandas定义一个别名pd
import numpy as np #给引入的包numpy定义一个别名np,上两步是Dataframe创建二维数组
from sklearn.datasets import load_iris #从sklearn包中的datasets类中引入load_iris方法
import matplotlib.pyplot as plt #给包matplotlib.pyplot定义一个plt别名
%matplotlib inline #使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,inline表示将图表嵌入到Notebook中。
%# load data
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)//将列名设置为特征
df[\'label\'] = iris.target//增加一列为类别标签
plt.scatter(df[:50][\'sepal length\'], df[:50][\'sepal width\'], label=\'0\') #将数据的前50个数据绘制散点图,令其标签为0
plt.scatter(df[50:100][\'sepal length\'], df[50:100][\'sepal width\'], label=\'1\') #将数据的50到100个数据绘制散点图,令其标签为1,这里只选取了0,1两个特征
plt.xlabel(\'sepal length\') #将散点图的x轴命名为sepal length
plt.ylabel(\'sepal width\') #将散点图的y轴命名为sepal width
x_points = np.linspace(4, 7,10) # 用于产生4,7之间的10点行矢量
y_ = -(perceptron.w[0]*x_points + perceptron.b)/perceptron.w[1] # 绘制超平面
plt.plot(x_points, y_)
plt.plot(data[:50, 0], data[:50, 1], \'bo\', color=\'blue\', label=\'0\') # 将数据的前50个数据绘制散点图
plt.plot(data[50:100, 0], data[50:100, 1], \'bo\', color=\'orange\', label=\'1\') # 将数据的50-100之间的数据绘制成散点图
plt.xlabel(\'sepal length\')
plt.ylabel(\'sepal width\')
plt.legend()
x_ponits = np.arange(4, 8) # x,为4,5,6,7,默认步长为1,起始为4,终止为8,不取8
y_ = -(clf.coef_[0][0]*x_ponits + clf.intercept_)/clf.coef_[0][1] # 绘制超平面
plt.plot(x_ponits, y_)
plt.plot(data[:50, 0], data[:50, 1], \'bo\', color=\'blue\', label=\'0\') # 将数据的前50个数据绘制散点图
plt.plot(data[50:100, 0], data[50:100, 1], \'bo\', color=\'orange\', label=\'1\') # 将数据的50-100之间的数据绘制成散点图
plt.xlabel(\'sepal length\')
plt.ylabel(\'sepal width\')
plt.legend()
五.实验小结
理解并感知了器算法原理,能够简单实现感知器算法;掌握了机器学习算法的度量指标和最小二乘法进行参数估计基本原理;针对特定应用场景及数据,也能简单的构建感知器模型并进行预测