大数跨境
0
0

机器学习概念、开发流程及Python工具!

机器学习概念、开发流程及Python工具! 数据分析与统计学之美
2022-04-05
2

1、机器学习基本概念

机器学习:是从历史数据中自动分析获取模型,并利用模型对未知数据进行预测。

2、机器学习开发流程

2.1 获取数据及数据集构成

获取已有数据

学习可用的第3方数据集

  • Kaggle网址:https://www.kaggle.com/datasets
  • uci数据集网站:http://archive.ics.uci.edu/ml/
  • scikit-learn网址............................:http://scikit-learn.org/stable/datasets/index.html#datasets

机器学习数据集的构成

  • 由特征值(自变量)、目标值(因变量)构成。有些机器学习是可以没有目标值的,如聚类算法。

2.2 数据预处理

如:缺失值、异常值、数据转化等的数据清洗及处理。在python使用pandas库,可参考:数据清洗计算转化

2.3 特征工程

是使用专业背景知识和技巧处理数据,使得特征值(自变量)能在机器学习算法上发挥更好的作用的过程。特征工程主要包含的内容(其详细内容在公众号中有单独详细的讲解文章):

  • 特征抽取/提取
  • 特征预处理
  • 特征降维
  • 数据集的划分
    • 训练集:70%-80%
    • 测试集:20%-30%

2.4 算法分类

在公众号后面的文章中会分享每个模型

2.5 模型评估

  • 混淆矩阵
  • 准确率、精确率、召回率、F1-score
  • ROC曲线和AUC值 在公众号后面的文章中会分享详细的模型评估方法

2.6 模型的保存和加载

将训练模型保存下来,下次有新的需要预测的数据传进来的时候直接加载模型,然后预测就不用每次都再次训练了。具体方法根据使用的工具决定,后面模型实操内容中会讲解。

以上便是我们在做机器学习中的重要开发流程。

3、python机器学习工具

python语言机器学习工具(包括算法实例、数据集、文档、丰富的API等)

3.1 scikit-learn工具介绍

  • 安装:pip install Scikit-learn
  • 指定版本安装:pip install Scikit-learn==0.19.2
  • 依赖numpy、pandas、scipy
  • 导入:import sklearn

3.2 sklearn数据集API介绍

数据返回的是datasets.base.Bunch(继承自字典)

from sklearn import datasets
#机器学习数据集库
#sklearn.datasets.load_*()
# *:表示某个数据集的名称,load_:获取小规模数据集
df = sklearn.datasets.load_iris()
#iris:花儿的数据集
#print(df)
#sklearn.datasets.fetch_*(data_home=None)  
# *:表示某个数据集的名称,获取大规模数据集,
#需要从网上下载,data_home:表示数据集下载的目录,默认是~/scikit_learn_data/
#sklearn.datasets.fetch_*(data_home=None,subset='all')
#subset='all' /'train' / 'test'  
#全部数据集,训练数据集,测试数据集
#sklearn.datasets.fetch_20newsgroups(data_home=None,subset='all')

3.3 sklearn数据集返回值解释

from sklearn import datasets
#机器学习数据集库
df = sklearn.datasets.load_iris()
#iris:花儿的数据集
#display(df.data)
#返回特征值(自变量)数组
display(df["feature_names"])
#返回特征值的字段名称
display(df.target)
#返回目标值(因变量)数组
display(df.target_names)
#返回目标值解释
print(df["DESCR"])
#返回描述信息

#构建二维表
data=pd.DataFrame(df.data,columns=list(df["feature_names"]))
data["y"] = df.target
display(data.sample(5))

3.4 sklearn数据集划分

  • 数据集切分的语法格式:x_train,x_test,y_train,y_test = model_selection.train_test_split(x,y,test_size=n,random_state=m)
  • 解释:x_train训练的特征值(自变量);x_test测试的特征值;y_train训练的目标值,y_test测试的目标值 = 划分函数(x特征值,y目标值,test_size=测试集比例,随机种子)
import numpy as np
import pandas as pd
import sklearn
#机器学习库
from sklearn import model_selection
#机器学习模型训练库
from sklearn import datasets 
#机器学习数据集库
df = sklearn.datasets.load_iris()
#iris:花的数据集
x_train,x_test,y_train,y_test=sklearn.model_selection.train_test_split(
        df.data, df.target,
        test_size=0.2, random_state=11)
print(x_train.shape,x_test.shape,y_train.shape,y_test.shape)

#二维表DataFrame数据类,先构建二维表
data=pd.DataFrame(df.data,columns=list(df["feature_names"]))
data["y"] = df.target
display(data.sample(5))
x=data[df["feature_names"]]
y=data["y"]
x_train,x_test,y_train,y_test=model_selection.train_test_split(
    x,y,test_size=0.2,random_state=11)
print(x_train.shape,x_test.shape,y_train.shape,y_test.shape)
更多干货扫描下方二维码





【声明】内容源于网络
0
0
数据分析与统计学之美
免费领10w字"Python知识手册",共400页,后台回复“十万”领取!
内容 1080
粉丝 0
数据分析与统计学之美 免费领10w字"Python知识手册",共400页,后台回复“十万”领取!
总阅读76
粉丝0
内容1.1k