汇总:网站分析:粉丝站点免费分析及给出排名策略!
优采云 发布时间: 2022-11-14 22:30汇总:网站分析:粉丝站点免费分析及给出排名策略!
2. 使用尽可能少的标签
其实我推荐你使用tags进行排名,这样可以解决采集的内容没有排名的问题,因为你可以在tag标签里面放多个采集相关的内容,这样就可以了当一个高质量的聚合页面出来时,排名的希望也很高。
但是很多人犯的错误是没有控制标签页。如上图所示,这个标签只有一个文章。毫无疑问,这个问题会被“强风算法”击中,所以与其创建这样的页面,还不如放弃做聚合页面。
那么有的朋友可能也有这种错误。将相关性较弱的页面聚合到标签中是没有意义的。毕竟整个页面中并没有与这个标签相关的文章。如果要这个词的排名,可能性几乎是0,而且还被“强风算法”击中。
3. 恶意采集
跟他沟通后,他自己说,上个月采集发表了500篇文章,然后一天之内全部发布。毫无疑问,恶意采集是搜索引擎的攻击对象,搜索引擎排查此类问题并不难。恶意 采集 是许多网站管理员正在做的事情。
如上图,本站曾经采集我的网站,被我举报什么都没留下,所以恶意采集,你懂的。
4. 用户体验
这套长城模板可以说权限非常开放。如果你做得好,它可能对用户体验非常有益。在用户体验方面,我的建议是在右侧添加本栏的。文章和作者最新发布的文章,首先同作者发布的文章的类型基本一致,本作者主攻SEO,然后基本是文章写的也和SEO有关,所以相关性比较强,同栏的文章也是比较强的方法。毕竟我们在发布SEO内容的时候,自然会选择发布在SEO栏目中,这样调用的时候就很相关了。然后本站调出了作者最新的文章,可以加文章 同一列的。有了底部的相关推荐,基本上用户看了一篇文章的文章后,停留时间就会突飞猛进。
5.敏感内容,无目标排名
可能您在本站没有看到任何敏感词或非法行业。2020年1月,百度发起了对“推广SEO搜索优化业务”的打击,所以如果你是新站,上来做SEO知识,可以说是直接针对百度。对于此公告,您可以在线查看打击情况。包括打压的时候,“SEO”等关键词的竞标被禁止,竞标被禁止。你认为你的免费人会让你活着吗?
其次,没有确切的目标词,自然没有排名。如上图所示,这个文章可以说没有确切的目标词。用户会不会搜索“分析”来找你网站?如果你页面的主词是“网站收录”,那么至少这个词应该定位好。排名更有希望。
总结:最后给大家一些针对性的建议,分批提交历史内容。站长平台的普通收录是为你提交历史内容,因为帖子的下沉和内容的时效性可能会导致页面收录不再是收录,如果没有办法解决修改历史内容的及时性,那么最好的办法就是批量提交历史内容。
那么长城一共有6万篇文章,每天有5万多页提交给搜索引擎,所以就算我的网站没有秒收录,我也能做到超过一周内80%。收录,一个月内达到收录的99%+,以后不会收录不再收录。但是,大多数 wordpress 插件不支持这种提交方式。我用自己制作的小工具分批提交。当然,本站可能还有更多问题,在评论区留给大家解答。
如果你需要学习SEO优化,可以加我微信(394062665),我会教你从快0到权重7的优化方法。下面是一些案例。
汇总:机器学习之数据均衡算法种类大全+Python代码一文详解(下)
(6).AllKNN
与RepeatedEditedNearestNei*敏*感*词*ours 不同,该算法内部的最近邻算法在每次迭代时邻域数增加。
代码总结在上面。这三类算法大同小异,但都是在EditedNearestNei*敏*感*词*ours的基础上进行了优化:
(7).InstanceHardnessThreshold
使用分类器的预测排除样本。所有低概率分类的样本将被删除。
from imblearn.under_sampling import InstanceHardnessThreshold
samplers = {
FunctionSampler(), # identity resampler
InstanceHardnessThreshold(
estimator=LogisticRegression(),
random_state=0,
),
}
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(15, 15))
for ax, sampler in zip(axs, samplers):
model = make_pipeline(sampler, clf).fit(X, y)
plot_decision_function(
X,
y,
model,
ax[0],
title=f"Decision function with \n{sampler.__class__.__name__}",
)
plot_resampling(
X, y, sampler, ax[1], title=f"Resampling using \n{sampler.__class__.__name__}"
)
fig.tight_layout()
plt.show()
(8).NearMiss
NearMiss 算法实现了一些启发式规则来选择样本。NearMiss-1 从多数类中选择与最近的少数类样本的平均距离最小的样本。NearMiss-2 从与负类最远样本的平均距离最小的多数类中选择样本。NearMiss-3 是一个两步算法:首先,对于每个少数样本,保留其最近邻;然后,选择与最近邻的平均距离最大的多数样本。
from imblearn.under_sampling import NearMiss
X, y = create_dataset(n_samples=1000, weights=(0.05, 0.15, 0.8), class_sep=1.5)
samplers = [NearMiss(version=1), NearMiss(version=2), NearMiss(version=3)]
fig, axs = plt.subplots(nrows=3, ncols=2, figsize=(15, 25))
for ax, sampler in zip(axs, samplers):
model = make_pipeline(sampler, clf).fit(X, y)
plot_decision_function(
X,
y,
model,
ax[0],
title=f"Decision function for {sampler.__class__.__name__}-{sampler.version}",
)
plot_resampling(
X,
y,
sampler,
ax[1],
title=f"Resampling using {sampler.__class__.__name__}-{sampler.version}",
)
fig.tight_layout()
(9).Nei*敏*感*词*ourhoodCleaningRule
Nei*敏*感*词*ourhoodCleaningRule 使用 EditedNearestNei*敏*感*词*ours 删除一些样本。此外,他们使用 3 个最近邻来删除不符合此规则的样本。
代码已粘贴在 CondensedNearestNei*敏*感*词*our 列中:
(10) 单面选择
1-NN 被用于 TomekLinks 以去除被认为有噪声的样本。
代码已粘贴在 CondensedNearestNei*敏*感*词*our 列中:
(11)。TomekLinks
TomekLinks:样本x和样本y来自不同的类别,并且满足以下条件,称为TomekLinks:没有其他样本z,使得d(x, z) < d(xy)或d( y, z) < d(x, y) 成立。其中d(.)表示两个样本之间的距离,即两个样本是相邻的。这时候样本x或者样本y很可能是Noisy数据,或者两个样本在边界附近的地方。
TomekLinks 函数中的 auto 参数控制 Tomek 链接中的哪些样本被删除。默认 ratio='auto'' 删除多数类的样本,当 ratio='ll' 时,两个样本都被删除。
from collections import Counter
from sklearn.datasets import make_classification
from imblearn.under_sampling import TomekLinks
X, y = make_classification(n_classes=2, class_sep=2,
weights=[0.1, 0.9], n_informative=3, n_redundant=1, flip_y=0,
n_features=20, n_clusters_per_class=1, n_samples=1000, random_state=10)
tl = TomekLinks()
X_res, y_res = tl.fit_resample(X, y)
2.过采样算法:
在随机过采样的基础上,一方面通过样本构建降低直接复制样本代理的过拟合风险,另一方面实现样本平衡。例如,样本构建方法 SMOTE(合成少数过采样技术)及其衍生算法。
(1).SMOTE
通过从一小组样本中筛选样本
和
和相应的随机数
,通过两个样本之间的关系构造一个新样本
. SMOTE算法的基本思想是对少数类样本进行分析,根据少数类样本人工合成新样本加入数据集中,如下图所示。算法流程如下:
对于少数类中的每个样本,以欧式距离为标准,计算其到少数类样本集中所有样本的距离,得到其k个最近邻。
根据样本不平衡率设置一个采样率,确定采样率N。对于每个少数类样本,从其k近邻中随机选择若干个样本,假设选择的近邻为
.
对于每个随机选择的邻居
,分别与原创样本
根据以下公式构造一个新样本。
伪代码:
SMOTE会随机选择少数样本合成新样本,不考虑周围样本,容易出现两个问题:
如果选择的少数类样本也被少数类样本包围,那么新合成的样本将不会提供太多有用的信息。这就像 SVM 中远离边缘的点对决策边界几乎没有影响。
如果选择的少数类样本被多数类样本包围,这可能是噪声,新合成的样本将大部分与周围的多数类样本重叠,使得分类变得困难。
总的来说,我们希望新合成的少数类样本能够靠近两个类的边界,这往往可以为分类提供足够的信息。
from imblearn import FunctionSampler # to use a idendity sampler
from imblearn.over_sampling import SMOTE, ADASYN
X, y = create_dataset(n_samples=150, weights=(0.1, 0.2, 0.7))
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(15, 15))
samplers = [
FunctionSampler(),
RandomOverSampler(random_state=0),
SMOTE(random_state=0),
ADASYN(random_state=0),
]
for ax, sampler in zip(axs.ravel(), samplers):
title = "Original dataset" if isinstance(sampler, FunctionSampler) else None
plot_resampling(X, y, sampler, ax, title=title)
fig.tight_layout(
(2).RandomOverSampler
从具有少量样本的类中随机采样,然后将采样的样本添加到数据集中。不过这种方法现在用的不多,因为重复采样往往会导致严重的过拟合,所以目前主流的过采样方法是通过某种方式人为地合成一些少数类样本,以达到类平衡的目的。
from imblearn.pipeline import make_pipeline
from imblearn.over_sampling import RandomOverSampler
X, y = create_dataset(n_samples=100, weights=(0.05, 0.25, 0.7))
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(15, 7))
clf.fit(X, y)
plot_decision_function(X, y, clf, axs[0], title="Without resampling")
sampler = RandomOverSampler(random_state=0)
model = make_pipeline(sampler, clf).fit(X, y)
plot_decision_function(X, y, model, axs[1], f"Using {model[0].__class__.__name__}")
fig.suptitle(f"Decision function of {clf.__class__.__name__}")
fig.tight_layout()
(3) SMOTEN、BorderlineSMOTE、KMeansSMOTE、SVMSMOTE
SMOTE 通过识别在重采样期间要考虑的特定样本提出了几种变体。边界版本(BorderlineSMOTE)将检测在两个类之间的边界中选择了哪个点。SVM 版本 ( SVMSMOTE ) 将使用通过 SVM 算法找到的支持向量来创建新样本,而 KMeans 版本 ( KMeansSMOTE ) 将预先聚类,根据每个聚类密度在每个聚类中独立生成样本。
from imblearn.over_sampling import BorderlineSMOTE, KMeansSMOTE, SVMSMOTE
X, y = create_dataset(n_samples=5000, weights=(0.01, 0.05, 0.94), class_sep=0.8)
fig, axs = plt.subplots(5, 2, figsize=(15, 30))
samplers = [
SMOTE(random_state=0),
BorderlineSMOTE(random_state=0, kind="borderline-1"),
BorderlineSMOTE(random_state=0, kind="borderline-2"),
KMeansSMOTE(random_state=0),
SVMSMOTE(random_state=0),
]
for ax, sampler in zip(axs, samplers):
model = make_pipeline(sampler, clf).fit(X, y)
plot_decision_function(
<p>
X, y, clf, ax[0], title=f"Decision function for {sampler.__class__.__name__}"
)
plot_resampling(X, y, sampler, ax[1])
fig.suptitle("Decision function and resampling using SMOTE variants")
fig.tight_layout()</p>
在处理连续和分类特征的混合时,SMOTENC 是唯一可以处理这种情况的方法。
from collections import Counter
from imblearn.over_sampling import SMOTENC
rng = np.random.RandomState(42)
n_samples = 50
# Create a dataset of a mix of numerical and categorical data
X = np.empty((n_samples, 3), dtype=object)
X[:, 0] = rng.choice(["A", "B", "C"], size=n_samples).astype(object)
X[:, 1] = rng.randn(n_samples)
X[:, 2] = rng.randint(3, size=n_samples)
y = np.array([0] * 20 + [1] * 30)
print("The original imbalanced dataset")
print(sorted(Counter(y).items()))
print()
print("The first and last columns are containing categorical features:")
print(X[:5])
print()
smote_nc = SMOTENC(categorical_features=[0, 2], random_state=0)
X_resampled, y_resampled = smote_nc.fit_resample(X, y)
print("Dataset after resampling:")
print(sorted(Counter(y_resampled).items()))
print()
print("SMOTE-NC will generate categories for the categorical features:")
print(X_resampled[-5:])
print()
但是,如果数据集仅收录分类特征,则应使用 SMOTEN。:
from imblearn.over_sampling import SMOTEN
# Generate only categorical data
X = np.array(["A"] * 10 + ["B"] * 20 + ["C"] * 30, dtype=object).reshape(-1, 1)
y = np.array([0] * 20 + [1] * 40, dtype=np.int32)
print(f"Original class counts: {Counter(y)}")
print()
print(X[:5])
print()
sampler = SMOTEN(random_state=0)
X_res, y_res = sampler.fit_resample(X, y)
print(f"Class counts after resampling {Counter(y_res)}")
print()
print(X_res[-5:])
print()
(4).ADASYN
不平衡学习的自适应综合采样方法,
ADASYN 思想:基于根据少数类数据样本的分布自适应生成少数类数据样本的思想:较难学习的少数类样本比更易学习的样本生成更多的合成数据。ADASYN方法不仅可以减少原创数据分布不平衡带来的学习偏差,还可以自适应地将决策边界转移到难以学习的样本上。关键思想是以密度分布为标准,自动决定每个少数类样本需要生成的合成样本的数量。物理上,不同少数民族的权重分布是根据他们的学习难度来衡量的。
from imblearn import FunctionSampler # to use a idendity sampler
from imblearn.over_sampling import SMOTE, ADASYN
X, y = create_dataset(n_samples=150, weights=(0.1, 0.2, 0.7))
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(15, 15))
samplers = [
FunctionSampler(),
RandomOverSampler(random_state=0),
SMOTE(random_state=0),
ADASYN(random_state=0),
]
for ax, sampler in zip(axs.ravel(), samplers):
title = "Original dataset" if isinstance(sampler, FunctionSampler) else None
plot_resampling(X, y, sampler, ax, title=title)
fig.tight_layout()
3. 组合采样
(1)。SMOTETomek, SMOTEENN
SMOTE 允许生成样本。但是,这种过采样方法对底层分布没有任何了解。因此,可能会生成一些噪声样本,例如,当不同的类别没有很好地分离时。因此,应用欠采样算法来清理噪声样本可能是有益的。文献中常用两种方法:(i)Tomek 的链接和(ii)编辑最近邻清理方法。不平衡学习提供了两个即用型采样器,SMOTETomek 和 SMOTEENN。
每种采样方式的参数和详细原理将在我的机器学习专栏中一一介绍:机器学习
该方法基于:数据预处理,如果想从建模0开始,强烈推荐订阅我的个人博客~