数据挖掘——混淆矩阵
# -*- coding: utf-8 -*-
import pandas as pd
filename = r'C:\Users\Administrator\Desktop\Python\py数据挖掘\第五周\data/bankloan.xls'
data = pd.read_excel(filename)
#x = data.iloc[:,:8].as_matrix() 旧版pandas不能用
#y = data.iloc[:,8].as_matrix()
x = data.iloc[:,:8].values.astype(int)
y = data.iloc[:,8].values.astype(int)
from keras.models import Sequential
from keras.layers.core import Dense,Activation
model=Sequential()#建立模型
model.add(Dense(input_dim=8,units=10))
model.add(Activation('relu'))#用relu作为激活函数
model.add(Dense(input_dim=10,units=1))
model.add(Activation('sigmoid'))#输出分类0或1
model.compile(loss = 'binary_crossentropy', optimizer = 'adam')
model.fit(x,y,epochs = 100, batch_size = 10) #训练模型,学习一千次yp=model.predict_classes(x).reshape(len(y)) #分类预测
yp = model.predict_classes(x).reshape(len(y)) #分类预测
import matplotlib.pyplot as plt #导入作图库
from sklearn.metrics import confusion_matrix #导入混淆矩阵函数
def cm_plot(y, yp):
cm = confusion_matrix(y, yp) #混淆矩阵
plt.matshow(cm, cmap=plt.cm.Greens) #画混淆矩阵图,配色风格使用cm.Greens,更多风格请参考官网。
plt.colorbar() #颜色标签
for x in range(len(cm)): #数据标签
for y in range(len(cm)):
plt.annotate(cm[x,y], xy=(x, y), horizontalalignment='center', verticalalignment='center')
plt.ylabel('True label') #坐标轴标签
plt.xlabel('Predicted label') #坐标轴标签
return plt
cm_plot(y,yp).show() #显示混淆矩阵可视化结果

# -*- coding: utf-8 -*-
import pandas as pd
from sklearn.linear_model import LogisticRegression as LR
from sklearn.model_selection import train_test_split
filename = r'C:\Users\Administrator\Desktop\Python\py数据挖掘\第五周\data/bankloan.xls'
data = pd.read_excel(filename)
#x = data.iloc[:,:8].as_matrix() 旧版pandas不能用
#y = data.iloc[:,8].as_matrix()
x = data.iloc[:,:8].values.astype(int)
y = data.iloc[:,8].values.astype(int)
x_train, x_test, y_train, y_test = train_test_split(
x, y, test_size=0.3, random_state=11)
lr = LR() # 建立逻辑回归模型
lr.fit(x_train, y_train) # 用筛选后的特征数据来训练模型
lr.fit(x_test, y_test)
y_pred_train = lr.predict(x_train) #预测
y_pred_test = lr.predict(x_test)
'''
from keras.models import Sequential
from keras.layers.core import Dense,Activation
model=Sequential()#建立模型
model.add(Dense(input_dim=8,units=10))
model.add(Activation('relu'))#用relu作为激活函数
model.add(Dense(input_dim=10,units=1))
model.add(Activation('sigmoid'))#输出分类0或1
model.compile(loss = 'binary_crossentropy', optimizer = 'adam')
model.fit(x,y,epochs = 100, batch_size = 10) #训练模型,学习一千次yp=model.predict_classes(x).reshape(len(y)) #分类预测
yp = model.predict_classes(x).reshape(len(y)) #分类预测
'''
import matplotlib.pyplot as plt #导入作图库
from sklearn.metrics import confusion_matrix #导入混淆矩阵函数
def cm_plot(y, yp):
cm = confusion_matrix(y, yp) #混淆矩阵
plt.matshow(cm, cmap=plt.cm.Greens) #画混淆矩阵图,配色风格使用cm.Greens,更多风格请参考官网。
plt.colorbar() #颜色标签
for x in range(len(cm)): #数据标签
for y in range(len(cm)):
plt.annotate(cm[x,y], xy=(x, y), horizontalalignment='center', verticalalignment='center')
plt.ylabel('True label') #坐标轴标签
plt.xlabel('Predicted label') #坐标轴标签
return plt
cm_plot(y_train,y_pred_train).show() #显示混淆矩阵可视化结果


浙公网安备 33010602011771号