一、学习知识点概要
LogisticRegression模型:
- 使用sklearn中的LogisticRegression模型进行训练、预测、查看参数
数据处理:
- 将数据转化为DataFrame格式,并做简单的分析
可视化:
- 使用pandas和seaborn对数据进行可视化,会画散点图、contour图、pairplot、boxplot图
二、学习内容
主要对编程实践过程中用到的知识点进行总结。
LogisticRegression模型
## 导入逻辑回归模型函数
from sklearn.linear_model import LogisticRegression
## 调用逻辑回归模型
lr_clf = LogisticRegression()
## 用逻辑回归模型拟合构造的数据集
lr_clf = lr_clf.fit(x_fearures, y_label)
## 查看其对应模型的w
print('the weight of Logistic Regression:',lr_clf.coef_)
## 查看其对应模型的w0
print('the intercept(w0) of Logistic Regression:',lr_clf.intercept_)
## 做预测
z_proba = lr_clf.predict_proba(features) #属于每一类的概率
y_label_new1_predict = lr_clf.predict(features) #标签预测
数据处理
##生成格点
nx, ny = 200, 100
x_min, x_max = plt.xlim()
y_min, y_max = plt.ylim()
x_grid, y_grid = np.meshgrid(np.linspace(x_min, x_max, nx),np.linspace(y_min, y_max, ny))
#对格点进行预测
z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()])
z_proba = z_proba[:, 1].reshape(x_grid.shape)
#利用Pandas转化为DataFrame格式
iris_features = pd.DataFrame(data=data.data, columns=data.feature_names)
## 利用.info()查看数据的整体信息
iris_features.info()
## 进行简单的数据查看,我们可以利用 .head() 头部.tail()尾部
iris_features.head()
iris_features.tail()
## 利用value_counts函数查看每个类别数量
pd.Series(iris_target).value_counts()
## 对于特征进行一些统计描述
iris_features.describe()
可视化
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
plt.figure()
## 可视化训练样本
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
plt.title('Dataset')
# 可视化决策边界
plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue')
plt.show()
## 特征与标签组合的散点可视化
sns.pairplot(data=iris_all,diag_kind='hist', hue= 'target')
plt.show()
## 箱型图
for col in iris_features.columns:
sns.boxplot(x='target', y=col, saturation=0.5,palette='pastel', data=iris_all)
plt.title(col)
plt.show()
# 利用热力图对于结果进行可视化
plt.figure(figsize=(8, 6))
sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
plt.xlabel('Predicted labels')
plt.ylabel('True labels')
plt.show()
三、学习问题与解答
对于逻辑回归的推导,可以参考西瓜书。多分类的逻辑回归sklearn默认采用OVR模式。
四、学习思考与总结
主要学习了逻辑回归算法使用sklearn进行实践。其中调包比较简单,不熟悉的是使用matplotlib和seaborn进行可视化,以及使用pandas处理数据。