首页 > 其他分享 >机器学习基础

机器学习基础

时间:2024-10-22 10:10:41浏览次数:7  
标签:机器 df 基础 学习 test train print import model

机器学习浅谈

机器学习可以分为以下一个或多个类别:

  • 监督式学习
  • 非监督式学习
  • 强化学习
  • 生成式AI

监督式学习

监督式学习模型通过大量数据以及正确答案就能做出预测。两个常见的应用场景是回归和分类。

回归

回归模型可预测数值,比如降雨量预测。

以下是一个简单的回归模型

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(1, 10, 1)
y = 0.9 * t + np.sin(t)

plt.plot(t, y, "o")
# plt.show()
model = np.polyfit(t, y, deg = 2)
# print(model)
t2 = np.arange(-2, 12, 0.5)
y2predict = np.polyval(model, t2)
plt.plot(t, y, "o", t2, y2predict, "x")
plt.show()

但注意并不是 deg 越大越好,deg 越大在给定的数据上拟合程度高,但是在区域外就不行了,这种就是过拟合。

分类

分类模型预测事物应归属哪一类。

这里写的是 k-近邻算法(k-nearest neighbor classification),简单来说就是根据你最近的 k 个邻居的成分来判断你的成分。

数据链接

import os
import pandas as pd
from sklearn import neighbors
thisFilePath = os.path.abspath('.')
os.chdir(thisFilePath)
os.getcwd()

df = pd.read_csv('DataForClassify.csv')
# print(df.head())
train_x = df.iloc[0:80, 2:4]
# print(train_x.head())
train_y = df.iloc[0:80, 1]
# print(train_y.head())

model = neighbors.KNeighborsClassifier()
model.fit(train_x, train_y)

test_x = df.iloc[80:100, 2:4]
test_y = df.iloc[80:100, 1]
test_p = model.predict(test_x)
print(test_p)
print(test_y.values)
print(model.score(test_x, test_y))

非监督式学习

非监督式学习会根据给定的不含正确答案的数据回答。非监督式学习的目标是数据之间的差异。即模型没有提示,但需要推断出自己的规则对每一项数据进行分类。

常用的非监督式学习采用一种称为聚类的方法。

KMeans 算法

简单来说就是找临近点,然后找重心,然后继续找临近点,最后分为 k 类。

import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
thisFilePath = os.path.abspath('.')
os.chdir(thisFilePath)
os.getcwd()

df = pd.read_csv('DataForClassify.csv')
# print(df.head())
train_x = df.iloc[0:80, 2:4]
train_y = df.iloc[0:80, 1]

train_x2 = np.array(train_x[['yuwen', 'shuxue']])
# print(train_x2.shape)

Kmeans_model = KMeans(n_clusters = 3)
# print(Kmeans_model)
Kmeans_model = Kmeans_model.fit(train_x2)
# print(Kmeans_model.labels_)

clusterResult = pd.DataFrame(Kmeans_model.labels_, index = train_x.index, columns = ['clusterResult'])
# print(clusterResult.head())

def showCluster(dataSet, k, centroids, clusterAssment):
    numSamples, dim = dataSet.shape
    if (dim != 2):
        return False
    mark = ['Dr', 'Db', 'Dg', 'Dk', '^b', '+b', 'sb', 'db', '<b', 'pb']
    if (k > len(mark)):
        return False
    for i in range(numSamples):
        markIndex = int(clusterAssment[0, i])
        plt.plot(dataSet[i, 0], dataSet[i, 1], mark[markIndex])
    mark = ['Dr', 'Db', 'Dg', 'Dk', '^b', '+b', 'sb', 'db', '<b', 'pb']
    for i in range(k):
        plt.plot(centroids[i, 0], centroids[i, 1], mark[i], markeredgecolor = 'k', markersize = 14)
    plt.show()

train_x_array = np.array(train_x[['yuwen', 'shuxue']])
showCluster(train_x_array, 3, Kmeans_model.cluster_centers_, Kmeans_model.labels_.reshape(1, -1))

强化学习

强化学习重点在于获得奖励和规避惩罚,例如 Alphago 。

生成式ai

生成式ai是一类可以根据用户输入返回内容的模型。

标签:机器,df,基础,学习,test,train,print,import,model
From: https://www.cnblogs.com/mklzc/p/18431429

相关文章

  • 分包基础概念+使用分包
     ......
  • cmake学习笔记
    最近在学cmake的用法,参考了cmake使用详细教程(日常使用这一篇就足够了)这篇文章,这篇文章讲的很仔细,下面记录自己的学习过程。1、系统以及开发工具一开始想通过虚拟机安装Ubuntu和vscode,后面想到了之前本机Windows安装过wsl,wsl的就是Ubuntu,在wsl+本地vscode的开发下,很快就把文章......
  • 强化学习的数学原理-02贝尔曼公式
    目录MotivatingexamplesstatevalueBellmanequationMatrix-vectorformActionvaluesummaryMotivatingexamples一个核心概念:statevalue一个基本的工具:Bellmanequation为什么return是重要的?return可以用来评估policy下面计算3个例子计算return的方法:第一种方法:(......
  • 机器学习基础模型选择
    最近邻适用于小型数据集,是很好的基准模型,很容易解释。线性模型非常可靠的首选算法,适用于非常大的数据集,也适用于高维数据。朴素贝叶斯只适用于分类问题。比线性模型速度还快,适用于非常大的数据集和高维数据。精度通常要低于线性模型。决策树速度很快,不需要数据缩放,可以可......
  • 调速技术基础-调速的分类
    调速技术基础中,调速的分类可以根据不同的标准进行划分。按工作原理分类:机械式调速器:通过机械装置(如离合器、齿轮、链条等)来控制发动机的转速。这种调速器结构简单、成本低廉,通常用于较简单的机械系统中。其工作原理是通过控制喷油泵的供油量来改变柴油机的负荷,从而实现对......
  • 校招基础知识详解——计算机操作系统(内存管理)
    文章目录虚拟内存分页系统地址映射页面置换算法最佳页面置换算法(OPT,Optimalreplacementalgorithm)先进先出置换算法(FIFO,FirstInFirstOut)最近最久未使用的置换算法(LRU,LeastRecentlyUsed)最不常用算法最近未使用(NRU,NotRecentlyUsed)第二次机会算法时钟页面......
  • 人工智能学习框架:构建与训练AI模型的基础工具
    人工智能学习框架:构建与训练AI模型的基础工具人工智能(AI)学习框架是构建和训练AI模型的基础工具,它们提供了一组预定义的算法、函数和工具,使得开发者能够更快速、更高效地构建AI应用。这些框架通常包括一系列的库、工具和接口,涵盖了机器学习、深度学习等多个领域。本文将详细......
  • Elasticsearch应用与源码的学习方法是什么?
    学习Elasticsearch的应用与源码,可以按照以下步骤进行:入门基础:首先,可以通过官方文档或一些入门教程来了解Elasticsearch的基本概念和功能。例如,可以参考《Elasticsearch入门教程》 和《ElasticSearch入门篇(保姆级教程)-coderxz-博客园》。这些资源会介绍Elasticsearch的......
  • JAVA中的JDBC学习总结 我的学习笔记
    JDBC学习总结我的学习笔记一、JDBC简介一、JDBC快速入门一、JDBCAPI详解1.DriverManager2.Connection3.Statement4.ResultSet5.PreparedStatement一、数据库连接池1.数据库连接池简介2.数据库连接池实现3.Druid数据库连接池一、JDBC简介1.JDBC概念JDBC就......
  • MySQL数据库总结 我的学习笔记
    MySQL数据库总结一、数据库相关概念1.数据库2.数据库管理系统3.SQL4.常见的关系型数据库管理系统二、MySQL数据库1.MySQL目录结构2.MySQL数据模型三、SQL1.SQL简介2.SQL通用语法3.SQL分类4.DDL(数据定义)操作数据库操作表MySQL数据类型5.DML(数据操作)添加(insert)修改......