机器学习之逻辑回归分析

Classification(分类问题)

分类:根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类

基本框架

y = f(x1,x2…xn)        判断为类别N,如果y = n

分类方法 逻辑回归    KNN紧邻模型    决策树    神经网络

分类任务与回归任务的明显区别

分类任务

  • 分类目标:判断类别
  • 模型输出:非连续型标签(pass/failed;0/1/2)

回归任务

  • 回归目标:建立函数关系
  • 模型输出:连续型数值(比如0-20000的任意数值)

逻辑回归

用于解决分类问题的一种模型。根据数据特征或属性,计算其归属于某一类别的概率P(x),根据概率数值判断其所属类别。主要应用场景:二分类问题在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

区分类别散点图

mask=y==1
passed=plt.scatter(X1[mask],X2[mask])
failed = plt.scatter(X1[~mask],X2[~mask],marker = '^')

在这里插入图片描述

python实现

#模型训练:
from sklearn.linear_model import LogisticRegression
lr_model = LogisticRegression()
lr_model.fit(x,y)
#边界函数系数:
theta1,theta2 = lr_model.coef_[0][0],lr_model.coef_[0][1]
theta0 = lr_model.intercept_[0]
#对新数据做预测:
predictions = lr_model.predict(x_new)

在这里插入图片描述
为了更好的逻辑回归,生成新的属性数据
在这里插入图片描述

#generate new parameters
X1_2 = X1*X1; 
X2_2 = X2*X2;
x1_X2 = X1*X2;
X_new_dic = {'X1':X1,'X2':X2,'X1^2':X1_2,'X2_2':X2_2,'X1X2':X1_X2}
X_new = pd.DataFrame(X_new_dic)

评估模型表现

准确率(类别正确预测的比例):
Accuracy = 正确预测样本数量 / 总样本数量

from sklearn.metrics import accuracy_score
y_predict = LR.predict(X)
accuracy = accuracy_score(y,y_predict)

画图看决策边界效果,可视化模型表现:

plt.plot(X1,X2_boundary)
passed = plt.scatter(X1[mask],X2[mask])
failed = plt.scatter(X1[~mask],X2[~mask],marker='^')
posted @ 2020-10-09 23:09  samuelzhou  阅读(64)  评论(0)    收藏  举报