File size: 2,932 Bytes
2ec0192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import pandas as pd
import numpy as np
from sklearn import preprocessing
import streamlit as st
import joblib


def getDataSetOrigin():
    dataSet = [
        ["青绿", "蜷缩", "浊响", "清晰", "凹陷", "硬滑", 1],
        ["乌黑", "蜷缩", "沉闷", "清晰", "凹陷", "硬滑", 1],
        ["乌黑", "蜷缩", "浊响", "清晰", "凹陷", "硬滑", 1],
        ["青绿", "蜷缩", "沉闷", "清晰", "凹陷", "硬滑", 1],
        ["浅白", "蜷缩", "浊响", "清晰", "凹陷", "硬滑", 1],
        ["青绿", "稍蜷", "浊响", "清晰", "稍凹", "软粘", 1],
        ["乌黑", "稍蜷", "浊响", "稍糊", "稍凹", "软粘", 1],
        ["乌黑", "稍蜷", "浊响", "清晰", "稍凹", "硬滑", 1],
        ["乌黑", "稍蜷", "沉闷", "稍糊", "稍凹", "硬滑", 0],
        ["青绿", "硬挺", "清脆", "清晰", "平坦", "软粘", 0],
        ["浅白", "硬挺", "清脆", "模糊", "平坦", "硬滑", 0],
        ["浅白", "蜷缩", "浊响", "模糊", "平坦", "软粘", 0],
        ["青绿", "稍蜷", "浊响", "稍糊", "凹陷", "硬滑", 0],
        ["浅白", "稍蜷", "沉闷", "稍糊", "凹陷", "硬滑", 0],
        ["乌黑", "稍蜷", "浊响", "清晰", "稍凹", "软粘", 0],
        ["浅白", "蜷缩", "浊响", "模糊", "平坦", "硬滑", 0],
        ["青绿", "蜷缩", "沉闷", "稍糊", "稍凹", "硬滑", 0],
    ]
    features = [
        "color",
        "root",
        "knocks",
        "texture",
        "navel",
        "touch",
        "label",
    ]
    dataSet = np.array(dataSet)
    dfOrigin = pd.DataFrame(dataSet, columns=features)
    return dfOrigin


def dataPreprocessing():
    df = getDataSetOrigin()
    for feature in df.columns[0:6]:
        le = preprocessing.LabelEncoder()
        le = le.fit(df[feature])
        df[feature] = le.transform(df[feature])
        joblib.dump(le, "./models/" + feature + "_LabelEncoder.model")
    df["label"] = df["label"].astype(int)

    return df


def inputData():
    st.sidebar.subheader("请选择西瓜外观:sunglasses:")
    color = st.sidebar.selectbox("色泽", ("青绿", "乌黑", "浅白"))
    root = st.sidebar.selectbox("根蒂", ("蜷缩", "稍蜷", "硬挺"))
    knocks = st.sidebar.selectbox("敲击", ("浊响", "沉闷", "清脆"))
    texture = st.sidebar.selectbox("纹理", ("清晰", "稍糊", "模糊"))
    navel = st.sidebar.selectbox("脐部", ("凹陷", "稍凹", "平坦"))
    touch = st.sidebar.selectbox("触感", ("硬滑", "软粘"))
    input = [[color, root, knocks, texture, navel, touch]]
    features = ["color", "root", "knocks", "texture", "navel", "touch"]
    np.array(input).reshape(1, 6)
    df_input = pd.DataFrame(input, columns=features, index=None)

    for feature in features[0:6]:
        le = joblib.load("./models/" + feature + "_LabelEncoder.model")
        df_input[feature] = le.transform(df_input[feature])

    return df_input