机器学习概述

一、机器学习的概述

机器学习是入门人工智能必修的一科,说实话来说也就是我们的算法。这机器学习中我们一般分为两类:

  • 监督学习: 给定某些特征去估计因变量,即因变量存在的时候,我们称这个机器学习任务为有监督学习。如:我们使用房间面积,房屋所在地区,环境等级等因素去预测某个地区的房价。

  • 无监督学习: 给定某些特征但不给定因变量,建模的目的是学习数据本身的结构和关系。如:我们给定某电商用户的基本信息和消费记录,通过观察数据中的哪些类型的用户彼此间的行为和属性类似,形成一个客群。注意,我们本身并不知道哪个用户属于哪个客群,即没有给定因变量。

后面我们还可以继续加上机器学习的扩展: 深度学习、强化学习。

至于什么是监督学习和非监督学习我们是根据他们是否有目标(也就是结果)

在这一块内容中,我觉得西瓜书(其中详细介绍机器的)是入门机器学习的神书了,有想法的人可以买来看看。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-spmiR22T-1615813860544)(attachment:image.png)]

#导入一些有必要的科学计算与可视化的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use("ggplot") #使用可视化风格比较好的类型
import seaborn as sns

1.1 、回归

首先,我们先来看看有监督学习中回归的例子,我们使用sklearn内置数据集Boston房价数据集。
sklearn中所有内置数据集都封装在datasets对象内: 返回的对象有:

  • data:特征X的矩阵(ndarray)
  • target:因变量的向量(ndarray)
  • feature_names:特征名称(ndarray

在这里我们将使用sklearn中自带的波士顿房价数据集进行描述回归问题

from sklearn import datasets
boston = datasets.load_boston() # 返回一个类似于字典的类
X = boston.data
y = boston.target
features = boston.feature_names
boston_data = pd.DataFrame(X,columns=features)
boston_data.head()
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTAT
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.98
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.14
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.03
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.94
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.33
features
array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',
       'TAX', 'PTRATIO', 'B', 'LSTAT'], dtype='<U7')
boston_data["Price"] = y
boston_data.head()
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATPrice
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.9824.0
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.1421.6
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.0334.7
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.9433.4
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.3336.2

我们可以看到,数据给定任务所需要的因变量,因变量为波士顿房价Price是一个连续型变量,所以这
是一个回归的例子。

各个特征的相关解释:

CRIM:各城镇的人均犯罪率

ZN:规划地段超过25,000平方英尺的住宅用地比例

INDUS:城镇非零售商业用地比例

CHAS:是否在查尔斯河边(=1是)

NOX:一氧化氮浓度(/千万分之一)

RM:每个住宅的平均房间数

AGE:1940年以前建造的自住房屋的比例

DIS:到波士顿五个就业中心的加权距离

RAD:放射状公路的可达性指数

TAX:全部价值的房产税率(每1万美元)

PTRATIO:按城镇分配的学生与教师比例

sns.scatterplot(boston_data['NOX'],boston_data['Price'],color="r",alpha=0.6)
plt.title("Price~NOX")
plt.show()

在这里插入图片描述

1.2 、分类

对于分类的例子我们使用鸢尾花数据集进行探测

from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
features = iris.feature_names
iris_data = pd.DataFrame(X,columns=features)
iris_data['target'] = y
iris_data.head()
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
05.13.51.40.20
14.93.01.40.20
24.73.21.30.20
34.63.11.50.20
45.03.61.40.20
# 可视化特征
marker = ['s','x','o']
for index,c in enumerate(np.unique(y)):
    plt.scatter(x=iris_data.loc[y==c,"sepal length (cm)"],y=iris_data.loc[y==c,"sepal width (cm)"])
plt.xlabel("sepal length (cm)")
plt.ylabel("sepal width (cm)")
plt.legend()
plt.show()                                                                      

在这里插入图片描述

我们可以看到:每种不同的颜色和点的样式为一种类型的鸢尾花,数据集有三种不同类型的鸢尾花。
因此因变量是一个类别变量,因此通过特征预测鸢尾花类别的问题是一个分类问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值