机器学习之逻辑回归分析
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='^')
好文可以于大家分享,请注明转载