如何为网站配置域名并设置网页端口?
摘要:如何将网站挂载域名,网站开发设置网页端口,做一个静态网站多少钱,上海大型外贸公司⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 &#x
如何将网站挂载域名,网站开发设置网页端口,做一个静态网站多少钱,上海大型外贸公司⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ #x1f434;作者#xff1a;秋无之地 #x1f434;简介#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作#xff0c;主要擅长领域有#xff1a;爬虫、后端、大数据… ⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 作者秋无之地 简介CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作主要擅长领域有爬虫、后端、大数据开发、数据分析等。 欢迎小伙伴们点赞、收藏⭐️、留言、关注关注必回关 上一篇文章已经跟大家介绍过《关联规则挖掘上数据分析 | 数据挖掘 | 十大算法之一》相信大家对关联规则挖掘上都有一个基本的认识。下面我讲一下关联规则挖掘下数据分析 | 数据挖掘 | 十大算法之一 今天我来带你用 Apriori 算法做一个项目实战。你需要掌握的是以下几点
熟悉几个重要概念支持度、置信度和提升度熟悉与掌握 Apriori 工具包的使用在实际问题中灵活运用。包括数据集的准备等。 一、如何使用 Apriori 工具包
Apriori 虽然是十大算法之一不过在 sklearn 工具包中并没有它也没有 FP-Growth 算法。这里教你个方法来选择 Python 中可以使用的工具包你可以通过https://pypi.org/搜索工具包。 这个网站提供的工具包都是 Python 语言的你能找到 8 个 Python 语言的 Apriori 工具包具体选择哪个呢建议你使用第二个工具包即 efficient-apriori。后面我会讲到为什么推荐这个工具包。
首先你需要通过 pip install efficient-apriori 安装这个工具包。
然后看下如何使用它核心的代码就是这一行
itemsets, rules apriori(data, min_support, min_confidence)
其中 data 是我们要提供的数据集它是一个 list 数组类型。min_support 参数为最小支持度在 efficient-apriori 工具包中用 0 到 1 的数值代表百分比比如 0.5 代表最小支持度为 50%。min_confidence 是最小置信度数值也代表百分比比如 1 代表 100%。
关于支持度、置信度和提升度我们再来简单回忆下。
支持度指的是某个商品组合出现的次数与总次数之间的比例。支持度越高代表这个组合出现的概率越大。
置信度是一个条件概念就是在 A 发生的情况下B 发生的概率是多少。
提升度代表的是“商品 A 的出现对商品 B 的出现概率提升了多少”。
接下来我们用这个工具包跑一下上节课中讲到的超市购物的例子。下面是客户购买的商品列表 具体实现的代码如下
from efficient_apriori import apriori
# 设置数据集
data [(牛奶,面包,尿布),(可乐,面包, 尿布, 啤酒),(牛奶,尿布, 啤酒, 鸡蛋),(面包, 牛奶, 尿布, 啤酒),(面包, 牛奶, 尿布, 可乐)]
# 挖掘频繁项集和频繁规则
itemsets, rules apriori(data, min_support0.5, min_confidence1)
print(itemsets)
print(rules)运行结果
{1: {(啤酒,): 3, (尿布,): 5, (牛奶,): 4, (面包,): 4}, 2: {(啤酒, 尿布): 3, (尿布, 牛奶): 4, (尿布, 面包): 4, (牛奶, 面包): 3}, 3: {(尿布, 牛奶, 面包): 3}}
[{啤酒} - {尿布}, {牛奶} - {尿布}, {面包} - {尿布}, {牛奶, 面包} - {尿布}]
你能从代码中看出来data 是个 List 数组类型其中每个值都可以是一个集合。实际上你也可以把 data 数组中的每个值设置为 List 数组类型比如
data [[牛奶,面包,尿布],[可乐,面包, 尿布, 啤酒],[牛奶,尿布, 啤酒, 鸡蛋],[面包, 牛奶, 尿布, 啤酒],[面包, 牛奶, 尿布, 可乐]]
两者的运行结果是一样的efficient-apriori 工具包把每一条数据集里的项式都放到了一个集合中进行运算并没有考虑它们之间的先后顺序。因为实际情况下同一个购物篮中的物品也不需要考虑购买的先后顺序。
而其他的 Apriori 算法可能会因为考虑了先后顺序出现计算频繁项集结果不对的情况。所以这里采用的是 efficient-apriori 这个工具包。 二、挖掘导演是如何选择演员的
在实际工作中数据集是需要自己来准备的比如今天我们要挖掘导演是如何选择演员的数据情况但是并没有公开的数据集可以直接使用。因此我们需要使用之前讲到的 Python 爬虫进行数据采集。
不同导演选择演员的规则是不同的因此我们需要先指定导演。数据源我们选用豆瓣电影。
先来梳理下采集的工作流程。
首先我们先在https://movie.douban.com搜索框中输入导演姓名比如“宁浩”。 页面会呈现出来导演之前的所有电影然后对页面进行观察你能观察到以下几个现象
页面默认是 15 条数据反馈第一页会返回 16 条。因为第一条数据实际上这个导演的概览你可以理解为是一条广告的插入下面才是真正的返回结果。每条数据的最后一行是电影的演出人员的信息第一个人员是导演其余为演员姓名。姓名之间用“/”分割。
有了这些观察之后我们就可以编写抓取程序了。在代码讲解中你能看出这两点观察的作用。抓取程序的目的是为了生成宁浩导演你也可以抓取其他导演的数据集结果会保存在 csv 文件中。完整的抓取代码如下
# -*- coding: utf-8 -*-
# 下载某个导演的电影数据集
from efficient_apriori import apriori
from lxml import etree
import time
from selenium import webdriver
import csv
driver webdriver.Chrome()
# 设置想要下载的导演 数据集
director u宁浩
# 写CSV文件
file_name ./ director .csv
base_url https://movie.douban.com/subject_search?search_textdirectorcat1002start
out open(file_name,w, newline, encodingutf-8-sig)
csv_write csv.writer(out, dialectexcel)
flags[]
# 下载指定页面的数据
def download(request_url):driver.get(request_url)time.sleep(1)html driver.find_element_by_xpath(//*).get_attribute(outerHTML)html etree.HTML(html)# 设置电影名称导演演员 的XPATHmovie_lists html.xpath(/html/body/div[idwrapper]/div[idroot]/div[1]//div[classitem-root]/div[classdetail]/div[classtitle]/a[classtitle-text])name_lists html.xpath(/html/body/div[idwrapper]/div[idroot]/div[1]//div[classitem-root]/div[classdetail]/div[classmeta abstract_2])# 获取返回的数据个数num len(movie_lists)if num 15: #第一页会有16条数据# 默认第一个不是所以需要去掉movie_lists movie_lists[1:]name_lists name_lists[1:]for (movie, name_list) in zip(movie_lists, name_lists):# 会存在数据为空的情况if name_list.text is None: continue# 显示下演员名称print(name_list.text)names name_list.text.split(/)# 判断导演是否为指定的directorif names[0].strip() director and movie.text not in flags:# 将第一个字段设置为电影名称names[0] movie.textflags.append(movie.text)csv_write.writerow(names)print(OK) # 代表这页数据下载成功print(num)if num 14: #有可能一页会有14个电影# 继续下一页return Trueelse:# 没有下一页return False# 开始的ID为0每页增加15
start 0
while start10000: #最多抽取1万部电影request_url base_url str(start)# 下载数据并返回是否有下一页flag download(request_url)if flag:start start 15else:break
out.close()
print(finished)
代码中涉及到了几个模块我简单讲解下这几个模块。
在引用包这一段我们使用 csv 工具包读写 CSV 文件用 efficient_apriori 完成 Apriori 算法用 lxml 进行 XPath 解析time 工具包可以让我们在模拟后有个适当停留代码中我设置为 1 秒钟等 HTML 数据完全返回后再进行 HTML 内容的获取。使用 selenium 的 webdriver 来模拟浏览器的行为。
在读写文件这一块我们需要事先告诉 python 的 open 函数文件的编码是 utf-8-sig对应代码encoding‘utf-8-sig’这是因为我们会用到中文为了避免编码混乱。
编写 download 函数参数传入我们要采集的页面地址request_url。针对返回的 HTML我们需要用到之前讲到的 Chrome 浏览器的 XPath Helper 工具来获取电影名称以及演出人员的 XPath。我用页面返回的数据个数来判断当前所处的页面序号。如果数据个数 15也就是第一页第一页的第一条数据是广告我们需要忽略。如果数据个数 15代表是中间页需要点击“下一页”也就是翻页。如果数据个数 15代表最后一页没有下一页。
在程序主体部分我们设置 start 代表抓取的 ID从 0 开始最多抓取 1 万部电影的数据一个导演不会超过 1 万部电影每次翻页 start 自动增加 15直到 flagFalse 为止也就是不存在下一页的情况。
你可以模拟下抓取的流程获得指定导演的数据比如我上面抓取的宁浩的数据。这里需要注意的是豆瓣的电影数据可能是不全的但基本上够我们用。 有了数据之后我们就可以用 Apriori 算法来挖掘频繁项集和关联规则代码如下
# -*- coding: utf-8 -*-
from efficient_apriori import apriori
import csv
director u宁浩
file_name ./director.csv
lists csv.reader(open(file_name, r, encodingutf-8-sig))
# 数据加载
data []
for names in lists:name_new []for name in names:# 去掉演员数据中的空格name_new.append(name.strip())data.append(name_new[1:])
# 挖掘频繁项集和关联规则
itemsets, rules apriori(data, min_support0.5, min_confidence1)
print(itemsets)
print(rules)
代码中使用的 apriori 方法和开头中用 Apriori 获取购物篮规律的方法类似比如代码中都设定了最小支持度和最小置信系数这样我们可以找到支持度大于 50%置信系数为 1 的频繁项集和关联规则。
这是最后的运行结果
{1: {(徐峥,): 5, (黄渤,): 6}, 2: {(徐峥, 黄渤): 5}}
[{徐峥} - {黄渤}]
你能看出来宁浩导演喜欢用徐峥和黄渤并且有徐峥的情况下一般都会用黄渤。你也可以用上面的代码来挖掘下其他导演选择演员的规律。 三、总结
Apriori 算法的核心就是理解频繁项集和关联规则。在算法运算的过程中还要重点掌握对支持度、置信度和提升度的理解。在工具使用上你可以使用 efficient-apriori 这个工具包它会把每一条数据中的项item放到一个集合篮子里来处理不考虑项item之间的先后顺序。
在实际运用中你还需要灵活处理比如导演如何选择演员这个案例虽然工具的使用会很方便但重要的还是数据挖掘前的准备过程也就是获取某个导演的电影数据集。
版权声明
本文章版权归作者所有未经作者允许禁止任何转载、采集作者保留一切追究的权利。
