用神经网络模型,预测红酒质量
生活随笔
收集整理的這篇文章主要介紹了
用神经网络模型,预测红酒质量
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
用神經(jīng)網(wǎng)絡(luò)模型,預(yù)測紅酒質(zhì)量;
后又用KNN邏輯回歸SVM模型試了試,準(zhǔn)確率都差不多,神經(jīng)網(wǎng)絡(luò)稍高。原始數(shù)據(jù)格式如下:
最后輸出如下:
神經(jīng)網(wǎng)絡(luò)模型的預(yù)測準(zhǔn)確率是: 0.755
KNN模型的預(yù)測準(zhǔn)確率是:0.7275
LogicRe模型的預(yù)測準(zhǔn)確率是:0.7325
SVM模型的預(yù)測準(zhǔn)確率是:0.7425
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.neural_network import MLPClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
import seaborn as sns
import matplotlib.pyplot as plt
pd.set_option('expand_frame_repr', False) # 當(dāng)列太多時不換行
pd.set_option('display.max_rows', 500) # 最多顯示數(shù)據(jù)的行數(shù)
file_path = './data/wine_quality.csv'
if __name__ == '__main__':
data_df = pd.read_csv(file_path)
all_cols = data_df.columns.tolist() # 巧妙的取出了所有列名,并轉(zhuǎn)化為list
feat_cols = all_cols[:-1]
# 看看quality值各有多少個
# sns.countplot(data_df['quality']) # 這句跟下面一句等價
# sns.countplot(data=data_df, x='quality')
# plt.show()
# 對quality列進(jìn)行處理,原來若干種分類變?yōu)?、1兩種分類
data_df.loc[data_df['quality'] <= 5,'quality'] = 0
data_df.loc[data_df['quality'] >= 6,'quality'] = 1
# sns.countplot(data=data_df, x='quality')
# plt.show()
X = data_df[feat_cols]
y = data_df['quality']
# 對特征值進(jìn)行歸一化
scaler = MinMaxScaler()
X_process = scaler.fit_transform(X)
X_train,X_test,y_train,y_test = train_test_split(X_process,y,test_size=0.25,random_state=10)
# 神經(jīng)網(wǎng)絡(luò)模型;隱藏層也不是越多越好;max_iter設(shè)置太小會有警告(沒達(dá)到最優(yōu)),max_iter默認(rèn)200;random_state設(shè)置后每次運行結(jié)果一樣。
mlp_model = MLPClassifier(hidden_layer_sizes=(100,100),max_iter=1000,activation='relu',random_state=17)
mlp_model.fit(X_train,y_train)
accuracy = mlp_model.score(X_test,y_test)
print('神經(jīng)網(wǎng)絡(luò)模型的預(yù)測準(zhǔn)確率是:',accuracy)
# KNN邏輯回歸SVM模型試試
model_dict = {
'KNN': KNeighborsClassifier(n_neighbors=3),
'LogicRe': LogisticRegression(C=1e3, solver='liblinear', multi_class='auto'),
'SVM': SVC(C=1e3, gamma='auto') # C值越小表示越強的正則化,也就是更弱復(fù)雜度;C值默認(rèn)為1.0
}
for model_name,model in model_dict.items():
model.fit(X_train,y_train)
acc = model.score(X_test,y_test)
print('{}模型的預(yù)測準(zhǔn)確率是:{}'.format(model_name,acc))
總結(jié)
以上是生活随笔為你收集整理的用神经网络模型,预测红酒质量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加湿器加什么水?加湿器的功能是什么
- 下一篇: Tik Tok创始人简介(Tik Tok