大数据与人工智能协会 机器学习小组 第一次测试

1、简述你所理解的机器学习,并说明目前学过的知识与机器学习的关系。

数据处理及其在机器学习中的地位。数据处理是机器学习的前期重要步骤,机器学习就是从数据中学到“知识”。数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
机器学习(Machine Learning,ML)是人工智能的核心,涉及统计学、系统辨识、逼近理论、神经网络、优化理论、计算机科学、脑科学等诸多领域,研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构从而不断改善自身的性能。
编写一些算法,让机器来模拟人脑,推算出想要的结果

2、关于正则表达式,回答以下问题:
(1)什么是正则表达式,它有什么作用;

正则表达式是一个特殊的字符序列,能方便的检查一个字符串是否与某种模式匹配。
正则表达式一定是对字符串进行操作,方便于有效数据信息的提取。

(2). * + ? 分别是什么含义,如果将他们进行组合呢?

. 任意字符 * 重复零次或更多次 + 重复一次或更多次
? 重复零次或一次(非贪婪匹配) *? 重复任意次,但尽可能少重复
+? 重复 1 次或更多次,但尽可能少重复 ?? 重复 0 次或 1 次,但尽可能少重复

(3)python re 模块中,findall、search 和 match 有什么区别;

  1. findall:返回所有满足匹配条件的结果, 放在列表里
  2. search:会在字符串内查找模式匹配, 只到找到第一个匹配然后返回一个包含匹配信息的对象, 该对象可以通过调用 group() 方法得到匹配的字符串, 如果字符串没有匹配,则返回 None
  3. match:同 search, 不过尽在字符串开始处进行匹配

(4)写出匹配手机号的正则表达式(手机号共 11 位,且以 13、14、15、18 开头)

∧(13|14|15|18)[0-9]{9}$

3、python 和 C 语言的区别和优缺点,它们分别适用于什么场合。

  1. 翻译方式来看,python 是解释型语言,不需要预先编译,边解释边执行;C 是编译型语言,需要通过预先编译变成机器语言,再执行,所以 C 执行语言效率比 python高;
  2. C 语言是面向过程的,python 可以面向对象;
  3. C 语言更适合底层开发,直接与操作系统打交道;python 更适合于脚本编写、数据科学、机器学习等方向的应用(库函数的强大功能)。

4、关于面向对象,回答以下问题:
(1)什么是面向对象(面向对象的特性),它与面向过程有什么区别;

  1. 一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模;
  2. 主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题的步骤中的行为;
  3. 三大特性:
    封装(封装是将过程和数据包围起来, 数据只能通过定义的接口访问)
    继承(建立一个新的派生类,从一个或多个先前定义的类中继承数据和函数,可以重新定义或加进新数据和函数,从而建立了类的层次或等级)
    多态(同一操作作用与不同类的实例,将产生不同的执行结果,即不同类的对象收到相同的消息时,将得到不同的结果)
  4. 面向过程是直接将解决问题的步骤分析出来,然后用函数把步骤一步一步实现,然后再依次调用就可以了;而面向对象是将构成问题的事物,分解成若干个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在解决问题过程中的行为。 面向过程思想偏向于我们做一件事的流程,首先做什么,其次做什么,最后做什么。

(2)类、对象、实例、实例化之间的关系;

  1. 一切皆为对象,类是一种类型,一种更高层次的抽象
  2. 实例是根据类创建出来的一个一个对象
  3. 用类创建对象的过程就是实例化

(3)说明”init” 函数的作用,一定要有这个函数吗?

该函数为构造函数,类实例化时会自动调用,一般用于参数的初始化;可以没有这个函数(如果不需要参数初始化的话)。

5、关于 csv 操作,回答以下问题:
(1)csv 文件一定是逗号分隔的吗?pandas 如何读取 csv 文件,读入后是什么格式?

  1. csv:逗号分隔值(Comma-Separated Values)有时也称为字符分隔值,因为分隔字符也可以不是逗号。其文件以纯文本形式存储表格数据(数字和文本)
  2. pandas 通过 read_csv() 函数读入 csv 文件,读入后是 DataFrame 格式

(2)写出关键语句:将以逗号 ( , ) 分隔的文件 test.csv 读入,并将分隔符改为横线 (-),覆盖原文件。

import pandas as pd
data = pd.read_csv('test.csv', sep=',', header=None)
data.to_csv('test.csv', sep='-', index=False , header=False)

6、python 中,如何对字典、列表、字符串之间进行两两转换?
[’a’, ’b’, ’c’] ⇐⇒ ’abc’
k = [’a’, ’b’, ’c’], v = [1, 2, 3] ⇐⇒ {’a’: 1, ’b’: 2, ’c’: 3}
{’a’: 1, ’b’: 2, ’c’: 3} ⇐⇒ ’{”a”:1, ”b”:2, ”c”:3}’

// 列 表 转 字 符 串
‘’.join([‘a’, ‘b’, ‘c’]) // ‘abc’
// 字 符 串 转 列 表
list(‘abc’) // [‘a’, ‘b’, ‘c’]
// 两 个 列 表 转 成 字 典
k = [‘a’, ‘b’, ‘c’] v = [1, 2, 3]
dict(zip(k, v)) // {‘a’: 1, ‘b’: 2, ‘c’: 3}
// 字 典 转 列 表
d = {‘a’: 1, ‘b’: 2, ‘c’: 3}
list(d.keys()) // [‘a’, ‘b’, ‘c’]
list(d.values()) // [1, 2, 3]
// 字 符 串 转 字 典
import json
s = ‘{“a”:1, “b”:2, “c”:3}’
json.loads(s) // {‘a’: 1, ‘b’: 2, ‘c’: 3}
// 字 典 转 字 符 串
import json
d = {‘a’: 1, ‘b’: 2, ‘c’: 3}
json.dumps(d) // ‘{“a”: 1, “b”: 2, “c”: 3}’
// str(d) 也 能 实 现

1、说明 #include<filename.h> 和 #include”filename.h” 的区别。

) 对于 #include<filename.h>, 编译器先从标准库路径开始搜索 filename.h,使得系统文件调用比较快;
2) 对于 #include”filename.h”,编译器先从用户的工作路径开始搜索 filename.h,后去寻找系统路径,使得自定义文件较快。

2、说明 with 语句的原理,以及 with 和文件操作结合的好处。

上下文管理器(Context Manager):支持上下文管理协议的对象,这种对象实现了__enter__() 和 exit() 方法。上下文管理器定义执行 with 语句时要建立的运行时上下文,负责执行 with 语句块上下文中的进入与退出操作。通常使用 with 语句调用上下文管理器,也可以通过直接调用其方法来使用。
对于语句:with EXPR as VAR: BLOCK

  1. 执行 EXPR,生成上下文管理器 context_manager;
  2. 获取上下文管理器的 exit() 方法,并保存起来用于之后的调用;
  3. 调用上下文管理器的 enter() 方法;如果使用了 as 子句,则将 enter() 方法的返回值赋值给 as 子句中的 VAR;
  4. 执行 BLOCK 中的表达式;
  5. 不管是否执行过程中是否发生了异常,执行上下文管理器的 exit() 方法,exit() 方法负责执行“清理”工作。

对于 with 与文件操作的结合,可以自动执行 exit() 方法关闭文件,防止编程人员忘记关闭。若文件打开后未使用 close() 进行关闭,则被打开的文件会一直被占用,其它进程无法对该文件进行读写,直到该程序运行结束。

3、分别简述你所了解的机器学习算法

1) .回归算法:
2) .基于实例的算法:
3) .决策树学习:
4) .贝叶斯方法:
5) .基于核的算法:
6) .聚类算法:
7) .降低维度算法:
8) .关联规则学习:
9) .集成算法:
10) .人工神经网络:

1、请利用 matplotlib 编写一个程序,画出函数 y = x2 + 18 的图像,并给图表和坐标轴加上标题。

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x=np.linspace(-20,20)
y=x*x+18
plt.plot(x,y,'r')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.title('y=x*x+18的图像')
plt.grid()
plt.show()

2、素数排位:已知素数序列为 2、3、5、7、11、13、17、19、23、29⋯⋯,即素数的第一个是 2,第二个是 3,第三个是 5⋯⋯那么,随便挑一个数,若是素数,能确定是第几个素数吗?如果不是素数,则输出 0。

def f(x):
    for i in range(2, x):
        if(x%i==0):
            return 0
    return x
x=int(input())
count =0
if f(x):
    for i in range(2,x+1):
        if f(i):
            count+=1
    print(count)
else:
    print('0')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anan.3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值