哪个网站可以用来做读书笔记,鲁权屯网站建设,青岛外贸网站设计,广州网站百度排名推广pytorch实战
课时7 神经网络 MSE的缺点#xff1a;偏导值在输出概率值接近0或者接近1的时候非常小#xff0c;这可能会造成模型刚开始训练时#xff0c;偏导值几乎消失#xff0c;模型速度非常慢。 交叉熵损失函数#xff1a;平方损失则过于严格#xff0c;需要使用更合…pytorch实战
课时7 神经网络 MSE的缺点偏导值在输出概率值接近0或者接近1的时候非常小这可能会造成模型刚开始训练时偏导值几乎消失模型速度非常慢。 交叉熵损失函数平方损失则过于严格需要使用更合适衡量两个概率分布差异的测量函数。 使用逻辑函数得到概率并结合交叉熵当损失函数时在模型效果差的时候学习速度比较快在模型效果好的时候学习速度变慢。 torch.randint(0,2,(10,)) 报错torch.randint(0,2,(10))必须要有逗号 x.view()相当于reshape。x.view((-1, 4))当第一个参数为-1时自动调整为n行4列的张量 写模型时需要注意 super(LinearNet,self).init()forward(self, X): 查看模型参数net.state_dict()
机器学习算法一: 基于逻辑回归的分类预测
天池学习地址
逻辑回归使用交叉熵作为损失函数我理解的步骤为
初始化w和b计算所有点的y值。利用sigmoid函数将y值转化为属于某一类的概率利用交叉熵损失希望损失最小不断更新w和b
下面是天池的具体内容
# 可视化决策边界
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], cy_label, s50, cmapviridis) # 绘制三点图
plt.title(Dataset)# x割裂成200份y为100生成网格矩阵存储网格矩阵的点20000个点。画图的时候不需要一定按照x和y的坐标使用网格坐标也可
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)) #x_grid, y_grid的大小都是100*200计数是从左下到右上# 根据网格矩阵也就是有20000个点计算每个点分别为1类和2类的概率z_proba的结果array([[0.98401648, 0.01598352],[0.98362875, 0.01637125],[0.98323179, 0.01676821],...,[0.01094403, 0.98905597],[0.01068344, 0.98931656],[0.01042899, 0.98957101]])
z_proba lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()]) # ravel()将二维合成一维
z_proba z_proba[:, 1].reshape(x_grid.shape) # 此时z_proba是对应的类别1的预测概率
plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths2., colorsblue) # 绘制等高线的函数例如画一座山。XY的坐标和山的高度plt.show()下面是分析iris数据集的一般步骤 数据集的读取转化为pandas元素 iris_target data.target #得到数据对应的标签
iris_features pd.DataFrame(datadata.data, columnsdata.feature_names) #利用Pandas转化为DataFrame格式查看数据集的基本信息 # 这些函数是pandas的所以数据格式为Series和DataFrame
## 利用.info()查看数据的整体信息
iris_features.info()
## 进行简单的数据查看我们可以利用 .head() 头部.tail()尾部
iris_features.head()
iris_features.tail()
## 其对应的类别标签为其中012分别代表setosa, versicolor, virginica三种不同花的类别。
iris_target
## 利用value_counts函数查看每个类别数量
pd.Series(iris_target).value_counts()
## 对于特征进行一些统计描述
iris_features.describe()可视化描述散点和箱线图 ## 特征与标签组合的散点可视化
sns.pairplot(datairis_all,diag_kindhist, hue target)
plt.show()
## 箱线图
for col in iris_features.columns:sns.boxplot(xtarget, ycol, saturation0.5,palettepastel, datairis_all)plt.title(col)plt.show() 利用模型进行训练划分数据集定义模型模型训练打印参数 ## 划分数据集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test train_test_split(iris_features_part, iris_target_part, test_size 0.2, random_state 2020)
## 模型训练
from sklearn.linear_model import LogisticRegression
clf LogisticRegression(random_state0, solverlbfgs)
clf.fit(x_train, y_train)
clf.coef_
clf.intercept_利用模型进行测试可视化测试结果预测结果和概率计算混淆矩阵利用矩阵和热力图可视化 ## 测试结果是一个array类别和概率分别如下
test_predict clf.predict(x_test)
test_predict_proba clf.predict_proba(x_test)
## 正确率计算
from sklearn import metrics
print(The accuracy of the Logistic Regression is:,metrics.accuracy_score(y_test,test_predict))
## 查看混淆矩阵
confusion_matrix_result metrics.confusion_matrix(test_predict,y_test)
# 利用热力图对于结果进行可视化
plt.figure(figsize(8, 6))
sns.heatmap(confusion_matrix_result, annotTrue, cmapBlues)
plt.xlabel(Predicted labels)
plt.ylabel(True labels)
plt.show()