2、机器学习系统搭建流程

一、机器学习系统搭建流程

  1. 原始数据
    • 文本
    • 图像
    • 语音
  2. 数据预处理
  3. 特征工程 (向量/矩阵)
  4. 建模
  5. 预测

备注: 机器学习系统中,端到端的学习(End to end learning)

二、机器学习算法:

  1. 监督学习(Supervised)
  • 回归(Regression)
    • Linear Regression
    • Support Vector Regression
    • Neural Network
    • ···
  • 分类(Classify)
    • Logical Regression
    • Decision Tree
    • Random Forest
    • Neural Network
    • Deep Neural Network
  1. 非监督学习(Unsupervised)
  • 聚类
    • Kmeans
    • GMM
    • LDA(文本)

三、sklearn

sklearn官网:https://scikit-learn.org/stable/user_guide.html

sklearn 是机器学习领域中最为常用的库(library),它包含了几乎所有能找到的机器学习算法,而且非常高效

  1. 导入样本数据
# 导入样本数据
from sklearn import datasets
import numpy as np

wine = datasets.load_wine()
# print(wine)
X = wine.data
y = wine.target
print(np.shape(X), np.shape(y))
  1. 数据分配
# 把数据分成训练数据和测试数据
from sklearn.model_selection import train_test_split
# test_size:通常设为 0.2\、0.15、0.25
# random_state: 类似seed
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=49)
print(np.shape(X_train), np.shape(y_train))
print(np.shape(X_test), np.shape(y_test))
  1. 模型训练

训练方法 1: 逻辑回归

print('逻辑回归模型训练:')
from sklearn.linear_model import LogisticRegression
model = LogisticRegression().fit(X_train, y_train)
print('训练数据上的准确率:%f' % (model.score(X_train, y_train)) )
print('测试数据上的准确率:%f' % (model.score(X_test, y_test)))
>>> 逻辑回归模型训练:
>>> 训练数据上的准确率:0.971831
>>> 测试数据上的准确率:0.972222

训练方法 2: 支持向量机

print('支持向量机模型训练:')
from sklearn.svm import SVC
model = SVC().fit(X_train, y_train)  # gamma='auto'
print('训练数据上的准确率:%f' % (model.score(X_train, y_train)) )
print('测试数据上的准确率:%f' % (model.score(X_test, y_test)))
>>> 支持向量机模型训练:
>>> 训练数据上的准确率:1.000000
>>> 测试数据上的准确率:0.527778

训练方法 3: 决策树

print('决策树模型训练:')
from sklearn import tree
model = tree.DecisionTreeClassifier().fit(X_train, y_train)
print('训练数据上的准确率:%f' % (model.score(X_train, y_train)))
print('测试数据上的准确率:%f' % (model.score(X_test, y_test)))
>>> 决策树模型训练:
>>> 训练数据上的准确率:1.000000
>>> 测试数据上的准确率:0.916667

训练方法 4: 神经网络

print('神经网络模型训练:')
from sklearn.neural_network import MLPClassifier
# model = MLPClassifier(alpha=1e-5, hidden_layer_sizes=(200))
model = MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(200, ),
                     random_state=2)
model.fit(X_train, y_train)

print('训练数据上的准确率:%f' % (model.score(X_train, y_train)))
print('测试数据上的准确率:%f' % (model.score(X_test, y_test)))
>>> 神经网络模型训练:
>>> 训练数据上的准确率:0.950704
>>> 测试数据上的准确率:0.972222

你可能感兴趣的:(2、机器学习系统搭建流程)