散点图和KNN预测
一丶案例引入
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
%matplotlib inline
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong']
mpl.rcParams['axes.unicode_minus'] = False
ferrara1 = pd.read_csv('./ferrara_150715.csv')
ferrara2 = pd.read_csv('./ferrara_250715.csv')
ferrara3 = pd.read_csv('./ferrara_270615.csv')
ferrara=pd.concat([ferrara1,ferrara2,ferrara3],ignore_index=True)
faenza.head()
city_list=[ferrara,torino,mantova,milano,ravenna,asti,bologna,piacenza,cesena,faenza]
for city in city_list:
city.drop(labels='Unnamed: 0',axis=1,inplace=True)
max_temp = []
cities_dist = []
for city in city_list:
max_temp.append(city['temp'].max())
cities_dist.append(city['dist'].max())
x:自变量
y:因变量
y = 5x + 4
自变量的变化会导致因变量的变化
plt.scatter(cities_dist,max_temp,c='rbyg')
plt.xlabel('距离')
plt.ylabel('最高温度')
plt.title('距离和最高温度之间的关系图')
二丶机器学习的概念
机器学习是实现人工智能的一种技术手段
特殊的对象。特殊之处就在于该对象内部集成了某一种还没有求出解的方程。
实现预测:预测出一个未知的结果
实现分类:将一个未知分类的事务归类到已知的类群中
重点:算法模型中的方程的解就是预测或者分类的结果
作用:将样本数据带入到算法模型中让其内部的方程有解。至此算法模型就可以实现分类或者预测的功能。
训练模型:将样本数据带入到算法模型中让其内部的方程有解。只有训练好的算法模型才可以实现分类或者预测的功能!
组成部分:
特征数据:自变量
目标数据:因变量
有监督学习:如果模型需要的样本数据必须包含特征数据和目标数据
无监督学习:如果模型需要的样本只需要有特征数据
feature = np.array(cities_dist)
feature = feature.reshape(-1, 1)
target = np.array(max_temp)
from sklearn.linear_model import LinearRegression
linner = LinearRegression()
linner.fit(feature,target)
linner.score(feature,target)
linner.predict([[222],[333]])
x = np.linspace(0,350,num=100)
y = linner.predict(x.reshape(-1,1))
plt.scatter(cities_dist,max_temp,c='rbyg')
plt.xlabel('距离')
plt.ylabel('最高温度')
plt.title('距离和最高温度之间的关系图')
plt.scatter(x,y)
三丶k-近邻算法(KNN)
k-近邻算法原理
欧几里得距离(Euclidean Distance)
案例一:
需求:预测年收入是否大于50K美元
data = pd.read_csv('../data/adults.txt')
data.head()
feature = data[['age','education_num','occupation'
,'hours_per_week']]
target = data['salary']
dic = {}
occ_arr = feature['occupation'].unique()
for i in range(occ_arr.size):
dic[occ_arr[i]] = i
feature['occupation'] = feature['occupation'].map(dic)
feature.shape
x_train = feature[:32500]
y_train = target[:32500]
x_test = feature[32500:]
y_test = target[32500:]
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=10)
knn.fit(x_train,y_train)
knn.score(x_test,y_test)
print('真实的分类结果:',np.array(y_test))
print('模型的分类结果:',knn.predict(x_test))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?