机器学习用到的库、模块、函数

导入库的几种形式

1)import 库名

使用函数时:库名.函数名() 或 库名.模块名.函数名()

import numpy

list = [1, 2, 3]
average = numpy.mean(list)
print(average)

2)import 库名 as 自定义

使用函数时:自定义.函数名() 或 自定义.模块名.函数名()

import numpy as np

list = [1, 2, 3]
average = np.mean(list)
print(average)

3)import 库名.模块名 as 自定义

使用函数时:自定义.函数名()

import matplotlib.pyplot as plt

plt.show()

3)from 库名 import 模块

使用函数时:模块名.函数名()

from sklearn import datasets

iris = datasets.load_iris()

1、numpy库

是一个数学库,主要用于数组和矩阵运算

1)生成一个2×2并且初值为0的矩阵:

import numpy
mat = numpy.zeros((2, 2))
print(mat)

效果:
在这里插入图片描述
2)求平均值

average = numpy.mean(iris.data, axis = 0):纵向平均值

3)求标准差

d = np.std(iris.data, axis = 0) #axis = 0表示求每一列的标准差

4)求欧式距离

详细:https://blog.csdn.net/Daycym/article/details/81178519

5)创建矩阵

数组的其他操作:https://blog.csdn.net/sinat_34474705/article/details/74458605?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

import numpy as np

arr = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
print(arr)

输出:
在这里插入图片描述

2、random库

1)随机函数 randint

randint(l, r):随机生成 [l, r] 范围的整数

随机生成1—10(包括10)的整数:

import random
l = []
for i in range(10):
    l.append(random.randint(1, 10))
print(l)

效果:
在这里插入图片描述
2)随机函数 randrange

from random import randrange

l = list()
for i in range(10):
    l.append(randrange(10))
print(l)

效果:
在这里插入图片描述
和randint的区别在于,randrange是左闭右开,而randint是左闭右闭

3)将列表元素打乱顺序

random.shuffle()

详细:https://blog.csdn.net/chichu261/article/details/83302736

3、sum函数

mat.sum(axis = 1):对矩阵的所有行求和
mat.sum(axis = 0):对矩阵的所有列求和

对混淆矩阵的行和列求和:

import numpy
import random
from sklearn.metrics import confusion_matrix

test = []
predict = []
#随机生成1000个实际类别和预测类别
for i in range(1000): 
    test.append(random.randint(0, 1))
    predict.append(random.randint(0, 1))
#生成混淆矩阵
mat = confusion_matrix(test, predict)
print('混淆矩阵:')
print(mat)
row_sum = mat.sum(axis = 1)
col_sum = mat.sum(axis = 0)
print('每一行之和:\n', row_sum)
print('每一列之和:\n', col_sum)

效果:
在这里插入图片描述

4、sklearn库

sklearn是基于python的第三方库,包括机器学习的各个方面,分别用于完成数据的预处理、模型选择、分类任务、回归任务、聚类任务和降维任务。

1)sklearn导入iris数据集

如果要自定义一个名为load_iris的函数,可以导入datasets与自定义的函数区分开

from sklearn import datasets

iris = datasets.load_iris()
for i in iris:
    print(i)

iris数据集中有以下内容:
在这里插入图片描述
也可以直接导入load_iris函数

from sklearn.datasets import load_iris

iris = load_iris()
print(dir(iris))

输出:
在这里插入图片描述

2)生成混淆矩阵

from sklearn.metrics import confusion_matrix

y_true = [0, 1, 0, 1]
y_pred = [1, 1, 1, 0]
mat = confusion_matrix(y_true, y_pred)
print(mat)

效果:
在这里插入图片描述

3)将原始数据按照比例分成训练集和测试集

train_test_split()

详细:https://www.cnblogs.com/Yanjy-OnlyOne/p/11288098.html

import numpy as np
from sklearn.model_selection import train_test_split

X = np.array([[1, 1], [2, 2], [3, 3], [4, 4]])
y = np.array([1, 2, 3, 4])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
#训练集
print('X_train:')
print(X_train)
print('y_train:')
print(y_train)
#测试集
print('X_test:')
print(X_test)
print('y_test:')
print(y_test)

在这里插入图片描述
可以看出,训练集的数据和真实类别是一一对应的

4)标准化函数

不会改变原来的数据集,返回值即为标准化后的数据集

from sklearn.preprocessing import StandardScaler
from sklearn import datasets

iris = datasets.load_iris()
iris.data = StandardScaler().fit_transform(iris.data)
print(iris.data)

5)KFold函数:将数据集等分,用于k折交叉验证数据集的等分

注意拆分的数据集需要是array类型,不能是list类型,否则会出错

from sklearn.model_selection import KFold
import numpy as np

X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4])
kf = KFold(n_splits=4)
print(kf.get_n_splits(X))

print(kf)
KFold(n_splits=2, random_state=None, shuffle=False)
for train_index, test_index in kf.split(X):
    print("TRAIN:", train_index, "TEST:", test_index)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]

在这里插入图片描述
6)accuracy_score函数

用于判断预测的正确率,很好用

from sklearn.metrics import accuracy_score
#输入真实类别和预测类别计算预测的正确率
accuracy = accuracy_score(y_test, predict)

7)对于模型自带的score函数

参数为 X_test 和 y_test,返回在测试集上的正确率

predict = model.score(X_test, y_test)

5、pandas库

1)创建dataframe类型

详细:https://www.jianshu.com/p/8024ceef4fe2

超级方便好用的一个类型

data = pd.read_csv('train.csv')

2)scatter_matrix绘图可视化

详细:https://blog.csdn.net/wangxingfan316/article/details/80033557

random_state如果设为整数,在其他条件不变时,每次返回的数据都一样

如果不设,每次返回的结果都不一样

import pandas
from sklearn import datasets
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

iris = datasets.load_iris()

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=0)
dataframe = pandas.DataFrame(X_train, columns = iris.feature_names)
pandas.plotting.scatter_matrix(dataframe, marker='o', c = y_train, hist_kwds = {'bins':20})
plt.show()

效果:
在这里插入图片描述
3)quantile函数:

求第1、2、3四分位

import pandas

l = [[1, 1, 1, 1], 
     [2, 2, 2, 2], 
     [3, 3, 3, 3], 
     [4, 4, 4, 4]]
df = pandas.DataFrame(l)
first = df.quantile(q=0.25, axis=0, numeric_only=True)
second = df.quantile(q=0.5, axis=0, numeric_only=True)
third = df.quantile(q=0.75, axis=0, numeric_only=True)
print(first)
print(second)
print(third)

输出:
在这里插入图片描述
4)读取csv文件为dataframe

链接:https://www.py.cn/jishu/jichu/12705.html

import pandas as pd
data = pd.read_csv("fileName.csv")
print(data)

6、保存列表到本地

链接:https://blog.csdn.net/rosefun96/article/details/78877452

mat = [[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]]
fileObject = open('mat.txt', 'w') 
for i in mat:
    for j in i:
        fileObject.write(str(j))
        fileObject.write(' ')
    fileObject.write('\n')
fileObject.close() 

7、csv库

详细:https://jingyan.baidu.com/article/851fbc37729bf33e1f15aba2.html

1)将iris.data样本集保存为本地的 iris_data.csv 文件

from sklearn import datasets
import csv

iris = datasets.load_iris()

with open('d://iris_data.csv', 'w', newline='') as t_file:
	csv_writer = csv.writer(t_file)
	for i in iris.data:
		csv_writer.writerow(i)

2)读取csv文件为列表

转载自:https://blog.csdn.net/qq_44271529/article/details/90301114

from csv import reader
#得到一个data的二维列表,列表中的数据为str类型
data = list(reader(open('data.csv')))
#将列表中的数据转化为float类型
for i in range(len(data)):
    for j in range(len(data[i])):
        data[i][j] = float(data[i][j])

8、math库

数学库,有许多数学计算函数

math.sqrt函数

9、列表合并

a = [1, 2]
b = [3, 4]

print(a + b)

输出结果:
在这里插入图片描述

10、矩阵加法

import numpy as np

a = np.zeros((2, 2))
b = np.ones((2, 2))
print(a + b)

输出结果:
在这里插入图片描述

11、切片的进阶用法

提取前三个特征

from sklearn.datasets import load_iris

#获取鸢尾花数据集
iris = load_iris()
#提取前三个特征
X = iris.data[:, 0:3]
#打印
print(X)

提取单个特征,比如提取第一个特征

from sklearn.datasets import load_iris

#获取鸢尾花数据集
iris = load_iris()
#提取特征
X = iris.data[:, 0]
#打印
print(X)

12、zip函数

zip() 函数:

用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值