机器学习 - 分类算法

一 数据集

1.1 数据集的划分

机器学习一般的数据集会划分为两个部分:

  • 训练数据:用于训练,构建模型
  • 测试数据:在模型检验时使用,用于评估模型是否有效

划分比例:

  • 训练集:70% 80% 75%
  • 测试集:30% 20% 30%

API

sklearn.model_selection.train_test_split(arrays, *options)
  • x 数据集的特征值
  • y 数据集的标签值
  • test_size 测试集的大小,一般为float
  • random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
  • return ,测试集特征训练集特征值值,训练标签,测试标签(默认随机取)

1.2 sklearn数据集

1) 分类和回归数据集

分类数据集

from sklearn.datasets import load_iris

li = load_iris()

print("获取特征值:")
print(li.data)
print("目标值:")
print(li.target)
print("dddd")
print(li.DESCR)

#注意返回值

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

li = load_iris()
# 注意返回值, 训练集 train x_train, y_tranin 测试集 test x_test,y_test
x_train, x_test, y_train, y_test = train_test_split(li.data, li.target, test_size=0.25)

print("训练集特征值和目标值:", x_train, y_train)
print("测试集特征值和目标值:", x_test, y_test)

========
回归数据集:

from sklearn.datasets import fetch_20newsgroups

news = fetch_20newsgroups(subset='all')
print(news.data)
print(news.target)

2) 数据集 API

sklearn.datasets
加载获取流行数据集

  • datasets.load_*()
    获取小规模数据集,数据包含在datasets里
  • datasets.fetch_*(data_home=None)
    获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/

3) 返回类型

load和fetch返回的数据类型datasets.base.Bunch(字典格式)

  • data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
  • target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
    DESCR:数据描述
  • feature_names:特征名,新闻数据,手写数字、回归数据集没有
  • target_names:标签名

二 sklearn转换器和估计器

2.1 转换器和估计器

1)转换器

做的特征工程的步骤

  • 1、实例化 (实例化的是一个转换器类(Transformer))
  • 2、调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)

我们把特征工程的接口称之为转换器,其中转换器调用有这么几种形式:

  • fit_transform
  • fit
  • transform

这几个方法之间的区别是什么呢?我们看以下代码就清楚了:

In [1]: from sklearn.preprocessing import StandardScaler

In [2]: std1 = StandardScaler()

In [3]: a = [[1,2,3], [4,5,6]]

In [4]: std1.fit_transform(a)
Out[4]:
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])

In [5]: std2 = StandardScaler()

In [6]: std2.fit(a)
Out[6]: StandardScaler(copy=True, with_mean=True, with_std=True)

In [7]: std2.transform(a)
Out[7]:
array([[-1., -1., -1.],
       [ 1.,  1.,  1.]])

2) 估计器(sklearn机器学习算法的实现)

在sklearn中,估计器(estimator)是一个重要的角色,是一类实现了算法的API

  • 1、用于分类的估计器:
    sklearn.neighbors k-近邻算法
    sklearn.naive_bayes 贝叶斯
    sklearn.linear_model.LogisticRegression 逻辑回归
    sklearn.tree 决策树与随机森林
  • 2、用于回归的估计器:
    sklearn.linear_model.LinearRegression 线性回归
    sklearn.linear_model.Ridge 岭回归
  • 3、用于无监督学习的估计器
    sklearn.cluster.KMeans 聚类

3) 估计器工作流程

在这里插入图片描述

发布了107 篇原创文章 · 获赞 20 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/beishanyingluo/article/details/104826616