机器学习基础
-
导论
机器学习是指用某些算法指导计算机利用已知数据得出适当的模型,并利用此模型对新的情境给出判断的过程。即利用数学模型来理解数据,发现数据中的规律,并用来进行数据的分析和预测。
它的核心是数据。
根据数据种类的不同,可分为有监督学习,无监督学习,半监督学习和强化学习等类型。
- 有监督学习:有因变量,有特征向量,有预测结果/未来。 eg:通过房屋面积,所在地区,环境等因素去预测房价
根据因变量是否连续/输出结果是离散还是连续值,监督学习可分为分类问题和回归问题。
分类:离散型变量。
回归:连续型变量。
- 无监督学习:无因变量,有特征向量,寻找数据中的结构。
# 导入包
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房价数据集。
from sklearn import datasets
boston = datasets.load_boston() # 返回一个类似于字典的类
X = boston.data # 特征X的矩阵
y = boston.target # 因变量的向量
features = boston.feature_names # 特征名称
boston_data = pd.DataFrame(X, columns = features)
boston_data['Price'] = y
boston_data.head()
-
1.2分类
iris数据集
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()
-
1.3无监督学习
利用sklearn生成符合自身需求的数据集
# 生成月牙型非凸集
from sklearn import datasets
x, y = datasets.make_moons(n_samples=2000, shuffle=True, noise=0.05, random_state=None)
for index, c in enumerate(np.unique(y)):
plt.scatter(x[y==c, 0], x[y==c, 1], s=7)
plt.show()