目录

Sklearn与Tensorflow的对比

这里就简单地对比一下两者之间在流程上的差异

import numpy as np
import pandas as pd
import sklearn as sk
import tensorflow as tf
import matplotlib.pyplot as plt

# 一种好看的绘图库
import seaborn as sns

# sklearn中的相关工具
# 划分训练集和测试集
from sklearn.model_selection import train_test_split

# 逻辑回归
from sklearn.linear_model import LogisticRegressionCV

# tf.keras中使用的相关工具
# 用于模型搭建
from tensorflow.keras.models import Sequential

# 构建模型的层与激活方法
from tensorflow.keras.layers import Dense, Activation

# 数据处理的辅助工具
from tensorflow.keras import utils
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# Sklearn

# 读取数据
iris = sns.load_dataset("iris")

# 获得数据集的特征值和目标值
x = iris.values[:,:4]
y = iris.values[:,4]

# 数据集划分
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.5,random_state=0)

# 实例化分类器
lr = LogisticRegressionCV()

# 训练
lr.fit(x_train,y_train)

# 查看结果分数
lr.score(x_test,y_test)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Tensorflow

# 数据预处理 - 热编码
from sklearn.preprocessing import OneHotEncoder
one = OneHotEncoder()
y_train = one.fit_transform(y_train.reshape(-1,1)).toarray()
one = OneHotEncoder()
y_test = one.fit_transform(y_test.reshape(-1,1)).toarray()

# 格式转换
x_train, y_train, x_test, y_test = tf.convert_to_tensor(x_train,
                                                        dtype=tf.float32),          tf.convert_to_tensor(y_train,dtype=tf.float32),               tf.convert_to_tensor(x_test,dtype=tf.float32),     tf.convert_to_tensor(y_test,dtype=tf.float32))
                                                        
# 模型创建
model = Sequential([
    Dense(10,input_shape=(4,),activation='relu'),
    Dense(10,activation='relu'),
    Dense(3,activation='softmax')
])
model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])

# 模型训练
model.fit(x_train,y_train,epochs=10,batch_size=1,verbose=1)

# 模型评估
model.evaluate(x_test,y_test)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
最近更新
01
基本知识
07-18
02
卷积神经网络识别图像
07-18
03
损失函数
07-18
更多文章>