容桂网站制作代理商,制作制作网站开发,用ps怎么做网站背景,wordpress自定义结构后空白页CAP通常被称为“累积精度曲线”#xff0c;用于分类模型的性能评估。它有助于我们理解和总结分类模型的鲁棒性。为了直观地显示这一点#xff0c;我们在图中绘制了三条不同的曲线#xff1a;
一个随机的曲线#xff08;random#xff09;通过使用随机森林分类器获得的曲线…CAP通常被称为“累积精度曲线”用于分类模型的性能评估。它有助于我们理解和总结分类模型的鲁棒性。为了直观地显示这一点我们在图中绘制了三条不同的曲线
一个随机的曲线random通过使用随机森林分类器获得的曲线forest理论上完美的曲线perfect 案例分析
加载数据集
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np# loading dataset
data pd.read_csv(Social_Network_Ads.csv)print (Data Head : \n\n, data.head())输出
Data Head : User ID Gender Age EstimatedSalary Purchased
0 15624510 Male 19 19000 0
1 15810944 Male 35 20000 0
2 15668575 Female 26 43000 0
3 15603246 Female 27 57000 0
4 15804002 Male 19 76000 0数据输入输出
# Input and Output
x data.iloc[:, 2:4]
y data.iloc[:, 4]print (Input : \n, x.iloc[0:10, :])输出
Input : Age EstimatedSalary
0 19 19000
1 35 20000
2 26 43000
3 27 57000
4 19 76000
5 27 58000
6 27 84000
7 32 150000
8 25 33000
9 35 65000划分训练和测试数据集
# splitting data
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test train_test_split(x, y, test_size 0.3, random_state 0)随机森林分类器
# classifier
from sklearn.ensemble import RandomForestClassifier
classifier RandomForestClassifier(n_estimators 400)# training
classifier.fit(x_train, y_train)# predicting
pred classifier.predict(x_test)分类器性能评估
# Model Performance
from sklearn.metrics import accuracy_score
print(Accuracy : , accuracy_score(y_test, pred) * 100)输出
Accuracy : 91.66666666666666
随机模型
随机图是在假设我们已经绘制了从0到数据集中数据点总数的点的情况下绘制的。y轴保持为数据集中因变量结果为1的点的总数。随机图可以理解为线性增加的关系。举个例子一个模型预测是否购买产品积极的结果的每个人从一组人分类参数的因素如他们的性别年龄收入等如果组成员将被随机联系销售的产品的累计数量将线性上升到最大值对应的总人数在组内的买家。这种分布称为“随机”CAP。
代码示例
# code for the random plot
import matplotlib.pyplot as plt
import numpy as np# length of the test data
total len(y_test)# Counting 1 labels in test data
one_count np.sum(y_test)# counting 0 labels in test data
zero_count total - one_countplt.figure(figsize (10, 6))# x-axis ranges from 0 to total people contacted
# y-axis ranges from 0 to the total positive outcomes.plt.plot([0, total], [0, one_count], c b, linestyle --, label Random Model)
plt.legend()输出 随机森林分类器
代码随机森林分类算法应用于数据集并绘图。
lm [y for _, y in sorted(zip(pred, y_test), reverse True)]
x np.arange(0, total 1)
y np.append([0], np.cumsum(lm))
plt.plot(x, y, c b, label Random classifier, linewidth 2)输出 说明pred是随机分类器做出的预测。我们压缩预测值和测试值并以相反的顺序对其进行排序以便先出现较高的值然后是较低值。我们只提取数组中的y_test值并将其存储在lm中。np.cumsum创建一个值数组同时将数组中以前的所有值累积添加到当前值。x值的范围将从0到总和1。我们在总数上加1因为arange不包含数组中的1我们希望x轴的范围从0到总数。
完美模型
然后我们绘制完美的图或理想的曲线。一个完美的预测准确地确定了哪些组成员将购买产品这样最大数量的产品销售将达到最低数量的呼叫。这会在CAP曲线上产生一条陡峭的线一旦达到最大值联系所有其他组成员不会导致更多产品销售这就是“完美”CAP。
plt.plot([0, one_count, total], [0, one_count, one_count],c grey, linewidth 2, label Perfect Model)说明一个完美的模型会在相同的尝试次数中找到积极的结果。在我们的数据集中我们总共有41个积极的结果所以在41个时达到了最大值。
最终分析
在任何情况下我们的分类器算法都不应该产生一条位于随机线下面的线。在这种情况下它被认为是一个非常糟糕的模型。由于绘制的分类器线接近理想线我们可以说我们的模型非常适合。取完美图下的面积称之为aP。取预测模型下的面积称之为aR。然后将比率取为aR/aP。这个比率称为准确率。值越接近1模型越好。这是一种分析方法。
另一种分析方法是从预测模型上的轴的大约50%投影一条线并将其投影到y轴上。假设我们得到的投影值为X%。 - 60% 这是一个非常糟糕的模型 - 60%X70%这仍然是一个糟糕的模型但明显优于第一种情况 - 70%X80%这是一个很好的模型 - 80%X90%这是一个非常好的模型 - 90%X100%非常好可能是过拟合的情况之一。 因此根据这个分析我们可以确定我们的模型有多准确。