beihai's picture
Upload data.py
2ec0192
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