2022年上期-机器学习期末考试

导入包

import pandas as pd
import matplotlib as plt
from pandas import DataFrame
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder    #用于Label编码
from sklearn.preprocessing import OneHotEncoder     #用于one-hot编码
from sklearn.preprocessing import StandardScaler  #用于标准化处理
from sklearn import preprocessing
import numpy as np
import csv

导入数据表

data = pd.read_excel('user_info.xlsx')

查看前五条数据

data.head()

将Gender 列表 男、女生进行 转换为数值型

data_class={"男":1,"女":0}
data['Gender'] =data['Gender'].map(data_class)  #将列转换为数值型

查看前五条数据

data.head()

将Gender 转化为one-hot 编码

le = LabelEncoder()
data['Gender'] = le.fit_transform(data['Gender'])  #转化为one-hot编码

查看前五条数据

data.head()

检查缺失值

#检查缺失值
data.isnull().sum()

均值补充缺失值

#均值补充缺失值
data["Occupation"] = data['Occupation'].replace(np.NaN,data['Occupation'].mean())
data["Occupation"][:10] #查看前十行

 标准化处理

data =data.iloc[:,:8]
transfer = StandardScaler
data_new = transfer().fit_transform(data)

查看

data_new

 

查看

data.head()

 

将修改好的文件 保存到 purchase.csv 里面

data.to_csv('purchase.csv',index=False,header=None)  #将数据存进表中,最左侧,不导出列头

 

 模型建立 线性回归、决策树回归


import pandas as pd
# 读取数据
df = pd.read_excel('Data.xlsx')
#查看数据
df.head()
df.describe()
                                     #第一种方法,使用线性回归
from sklearn.linear_model import LinearRegression
X = df[['feature1', 'feature2']]
y = df['target']
model = LinearRegression()
model.fit(X, y)
predictions = model.predict(X)
accuracy = model.score(X, y)
print(f'Accuracy: {accuracy:.2f}')
                                   #第二种算法:决策树回归
from sklearn.tree import DecisionTreeRegressor
model = DecisionTreeRegressor()
model.fit(X, y)
predictions = model.predict(X)
accuracy = model.score(X, y)
print(f'Accuracy: {accuracy:.2f}')
                                   #使用一下代码来计算平均值绝对误差和均方差
from sklearn.metrics import mean_absolute_error, mean_squared_error
mae = mean_absolute_error(y, predictions)
mse = mean_squared_error(y, predictions)
print(f'Mean Absolute Error: {mae:.2f}')
print(f'Mean Squared Error: {mse:.2f}')
                                   #这一步参数调优
parameters = {'max_depth': [2, 4, 6, 8, 10],
              'min_samples_split': [2, 4, 6, 8, 10],
              'min_samples_leaf': [2, 4, 6, 8, 10]
              }
from sklearn.model_selection import GridSearchCV
model = DecisionTreeRegressor()
grid_search = GridSearchCV(model, parameters, cv=5)

opencv 图像翻转-图像灰度图-图像放大缩小-图像轮廓-图像rgb通道。

import cv2

# 读取灰度图像
img1 = cv2.imread('1.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 图片上下颠倒(翻转180度)
imgfilp = cv2.flip(img1, -1)
cv2.imshow('image2', imgfilp)
cv2.waitKey(0)
cv2.destroyAllWindows()


# 显示图片轮廓
def cv_show(img, name):
    cv2.imshow(name, img)
    cv2.waitKey()
    cv2.destroyAllWindows()


# 轮廓图
img = cv2.imread('2.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
cv_show(thresh, 'thresh')

# 缩小图片
image3 = cv2.imread('2.jpg', cv2.IMREAD_GRAYSCALE)
rest1 = cv2.resize(image3, None, fx=0.5, fy=0.3, interpolation=cv2.INTER_AREA)
cv2.imshow('name', rest1)
cv2.waitKey(0)

# 放大图片
image4 = cv2.imread('2.jpg', cv2.IMREAD_GRAYSCALE)
rest2 = cv2.resize(image4, None, fx=1.5, fy=1.3, interpolation=cv2.INTER_AREA)
cv2.imshow('name', rest2)
cv2.waitKey(0)

opencv rgb 通道实现

# 5,图像通道分离与合并
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt


def split_Image(image):
    plt.title("Saber")
    plt.imshow(image)
    b, g, r = cv.split(image)
    cv.imshow("b", b)
    cv.imshow("g", g)
    cv.imshow("r", r)
    return b, g, r


def merge_Image(b, g, r):
    # merge三通道拼接
    mergedImage = cv.merge([b, g, r])
    print(mergedImage.shape)
    cv.imshow("mergedImage", mergedImage)


srcImage3 = cv.imread(r'C:\Users\Administrator\Desktop\f.png')
cv.namedWindow("Saber", 1)
cv.imshow("Saber", srcImage3)
b, g, r = split_Image(srcImage3)
merge_Image(b, g, r)
cv.waitKey(0)
cv.destroyAllWindows()
'''------------------------------------------------------------------'''
#图像通道像素值操作
import cv2 as cv
import numpy as np
srcImage3=cv.imread(r'C:\Users\Administrator\Desktop\f.png')
#B,G,R三通道分别赋值为0:
#srcImage3[:,:,0]=0
#srcImage3[:,:,1]=0
srcImage3[:,:,2]=0
cv.namedWindow("Saber",1)
cv.imshow("Saber",srcImage3)
cv.waitKey(0)
cv.destroyAllWindows()
https://blog.csdn.net/KID_yuan/article/details/89495557?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-89495557-blog-122386324.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-89495557-blog-122386324.pc_relevant_default&utm_relevant_index=1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浪里个浪的1024

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

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

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

打赏作者

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

抵扣说明:

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

余额充值