《数据挖掘》- 房价数据分析
这里写目录标题
- 采用的技术
- 1. Python编程语言
- 2. 网络爬虫库
- 技术点对比与区别
- 项目技术栈的协同工作流程
- 代码解析
- 1. 导入头文件
- 2. 读取原始数据
- 3. 清洗数据
- 4. 数据分割
- 4.1 统计房屋信息的分段数量
- 4.2 将房屋信息拆分为独立列
- 4.3 处理面积字段
- 4.4 删除原始房屋信息列
- 5. 可视化分析
- 5.1 房屋户型数量统计
- 5.2 房源面积与总价
- 5.3 各区二手房平均单价的热力图
- 5.4 不同户型的占比分布
- 5.5 **不同行政区的修类型分布情况**
- 聚类分析
- 数据准备与标准化
- 确定最佳聚类数量(肘部法则)
- 结论
- 后记
采用的技术
链家网有反爬机制,频繁请求可能会被封IP
1. Python编程语言
作用:Python是一种高级、解释型、通用的编程语言,以其简洁的语法和强大的生态系统著称。
特点:
易读性:Python代码接近自然语言,适合快速开发和维护。
丰富的库支持:拥有大量第三方库(如aiohttp、requests、parsel),适合各种应用场景。
跨平台:可在Windows、Linux、macOS等系统上运行。
适用场景:数据抓取、数据分析、Web开发、自动化脚本等。
2. 网络爬虫库
网络爬虫库是专门用于从网页上提取数据的工具。本项目使用了以下库:
- a) aiohttp
作用:基于asyncio的异步HTTP客户端/服务器框架,用于高效发送HTTP请求和处理响应。
特点:
异步非阻塞:支持高并发请求,适合大规模爬取。
轻量级:比requests更高效,但学习曲线稍陡。
支持WebSocket:可用于实时数据抓取。
适用场景:需要高并发、高性能的爬虫项目。 - b) requests
作用:简单易用的HTTP库,用于发送同步HTTP请求。
特点:
同步阻塞:每次请求需等待响应,不适合高并发。
API友好:代码简洁直观,适合初学者。
功能全面:支持会话(Session)、Cookie、代理等。
适用场景:小规模爬取或简单API调用。 - c) parsel
作用:基于lxml和cssselect的HTML/XML解析库,用于从网页中提取结构化数据。
特点: - CSS选择器/XPath:支持两种方式定位元素,灵活性强。
高性能:底层依赖lxml,解析速度快。
Scrapy兼容:与Scrapy框架的Selector API一致。
适用场景:需要精确提取网页数据的场景。
技术点对比与区别
项目技术栈的协同工作流程
发起请求:
使用aiohttp(异步)或requests(同步)获取网页HTML。
解析数据:
通过parsel的CSS选择器/XPath提取目标数据。
并发控制:
利用asyncio管理多个爬取任务,避免阻塞。
数据处理:
将提取的数据存储到列表或数据库(如Pandas、SQLite)。
代码解析
1. 导入头文件
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 设置matplotlib的字体为支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 黑体
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
- %matplotlib inline:魔术命令,用于在
Notebook
中内嵌显示 matplotlib 图形。 - pandas:数据处理库(通常用于数据清洗和分析)。
- matplotlib.pyplot:Python 最基础的绘图库,plt 是约定俗成的别名。
- seaborn:基于
matplotlib
的高级统计可视化库,默认风格更美观。 - rcParams 是
matplotlib
的全局参数配置字典。
2. 读取原始数据
data = pd.read_csv("./data/二手房数据.csv")
data.head()
这一部分就比较简单,所以就不多赘述
3. 清洗数据
我们获取到的野生数据也会出现重复或者缺失值,所以在开始统计之前我们需要清洗数据
清洗前:
# 缺失值统计
data.isnull().sum()# 重复值统计
data.duplicated().sum()# 获取数值型数据的统计摘要(计数、均值、标准差、最小值、四分位数、最大值)
data.describe()
# 删除关键数值缺失的行
data = data.dropna(subset=['单价(元/平米)', '总价(万)']) # 删除区和位置都缺失的行(地理位置信息很重要)
data = data.dropna(subset=['区', '位置'])
data = data.dropna(subset=['房屋信息'])
4. 数据分割
原始数据中某一列可能包含多个信息,将复杂或复合型数据拆解为结构化字段,以便后续分析和建模
4.1 统计房屋信息的分段数量
统计 房屋信息 列中每条记录通过 | 分割后的字段数量
# 统计房屋信息的分段数量
nrec = data.房屋信息.map(lambda x: len(x.split('|')))
print(nrec.value_counts())
- map(lambda x: …):对 房屋信息 列的每个元素应用函数。
- x.split(‘|’):按 | 分割字符串,返回列表。
- len():计算列表长度(即分段数量)。
- value_counts():统计不同分段数量的出现次数。
这里返回的意思是:分成7
段的数据有43878
条;分成6
段的数据有1263
条(可能缺失数据);以此类推。那么为了后续的统计,我们就只保留分成7
段的所有数据即可
# 只保留字段书数量为7的数据行
data = data[nrec == 7]
data.info()
4.2 将房屋信息拆分为独立列
将 房屋信息 列按 | 分割为7个独立字段,并赋值到新列
data['户型'] = data.房屋信息.map(lambda x: x.split(' | ')[0])
data['面积(平米)'] = data.房屋信息.map(lambda x: x.split(' | ')[1])
data['朝向'] = data.房屋信息.map(lambda x: x.split(' | ')[2])
data['装修类型'] = data.房屋信息.map(lambda x: x.split(' | ')[3])
data['楼层'] = data.房屋信息.map(lambda x: x.split(' | ')[4])
data['建成时间'] = data.房屋信息.map(lambda x: x.split(' | ')[5])
data['结构'] = data.房屋信息.map(lambda x: x.split(' | ')[6])
data.head()
4.3 处理面积字段
在后面制图表需要用到房屋面积的数值,但是有些数据里面会出现 xxx.xx平米
在后缀有中文的情况下是不能识别出来的,所以下一步需要将后缀的中文删除
data['面积(平米)'] = data['面积(平米)'].apply(lambda x: float(x.split('平米')[0]))
- x.split(‘平米’)[0]:按 “平米” 分割字符串,取第一部分(数字)。
- float():将字符串转为数值类型。
4.4 删除原始房屋信息列
删除已拆分完毕的原始列 房屋信息,避免数据冗余。
data.drop(labels='房屋信息', axis=1, inplace=True)
- labels=‘房屋信息’:指定要删除的列名。
- axis=1:表示按列删除(axis=0 为行)。
- inplace=True:直接修改原DataFrame,不返回新对象。
5. 可视化分析
- plt.figure() 用于创建一个新的图形/画布
- figsize=(10, 6) 设置图形的宽度为10英寸,高度为6英寸
- dpi=150 设置图形分辨率为150 dots per inch (每英寸点数)
5.1 房屋户型数量统计
👉条形图绘制
sns.barplot(x=house_layout_counts.index, y=house_layout_counts.values)
- sns.barplot() 是 seaborn 库中绘制条形图的函数
- x 参数指定条形图的x轴数据(户型类别)
- y 参数指定条形图的高度(各户型数量)
- seaborn 是基于 matplotlib 的高级可视化库,提供更美观的默认样式和更简洁的API
👉坐标轴调整
✈当x轴标签较长或较多时,旋转可以避免标签重叠
plt.xticks(rotation=90, horizontalalignment='right')
- plt.xticks() 用于自定义x轴刻度标签
- rotation=90 将x轴标签旋转90度(垂直显示)
- horizontalalignment=‘right’ 设置标签右对齐,使显示更整齐
👉 图表保存
plt.savefig('./image/house_layout_distribution.png', dpi=300, bbox_inches='tight')
- plt.savefig() 用于将图表保存为图像文件
- dpi=300 设置保存图像的分辨率为300dpi(高于显示分辨率)
- bbox_inches=‘tight’ 自动调整边界框,避免标签被截断
给出的图片显示如下:
5.2 房源面积与总价
这段代码主要用于处理和分析二手房数据中的面积与总价关系,并通过散点图进行可视化展示
👉数据类型转换
data['面积(平米)'] = pd.to_numeric(data['面积(平米)'], errors='coerce')
data['总价(万)'] = pd.to_numeric(data['总价(万)'], errors='coerce')
- pd.to_numeric() 是 pandas 中将数据转换为数值类型的函数
- errors=‘coerce’ 参数表示当转换失败时(如遇到非数字字符串),将值设为
NaN(Not a Number)
👉 散点图绘制
sns.scatterplot(x='面积(平米)', y='总价(万)', data=data)
- sns.scatterplot() 是 seaborn 中绘制散点图的函数
5.3 各区二手房平均单价的热力图
👉数据聚合计算
average_price_by_district = data.groupby('区')['单价(元/平米)'].mean().reset_index()
print(average_price_by_district)
districts = average_price_by_district['区'].tolist()
average_prices = average_price_by_district['单价(元/平米)'].tolist()
- groupby() 是 pandas 的分组聚合函数,按’区’列分组
- mean() 计算每个分组的平均值
- reset_index() 将分组结果转换回DataFrame格式
- tolist() 将Series转换为Python列表,便于后续使用
DataFrame是Python中Pandas库的核心数据结构,是一种二维的、表格型的数据结构,类似于Excel表格或SQL数据库中的表
👉数据重构
pd.DataFrame(average_prices, index=districts, columns=['Average Price (Yuan/M^2)'])
- 将列表数据重新构建为DataFrame
- 使用行政区名作为索引(index)
- 单列数据,列名为
Average Price (Yuan/M^2)
- 这种结构适合热力图输入要求
👉热力图绘制
✈ 热力图适合展示单变量在不同类别上的数值分布
sns.heatmap(data=..., # 数据源annot=True, # 显示数值fmt=".0f", # 数值格式化为整数cmap="Reds", # 红色系颜色映射cbar_kws={'label': 'Average Price (元/平米)'} # 颜色条标签
)
- annot=True 在每个单元格中显示数值
- fmt=“.0f” 控制数值显示格式(0位小数)
- cmap=“Reds” 使用红色渐变表示数值大小
- cbar_kws 自定义颜色条属性
5.4 不同户型的占比分布
👉数据统计
house_type_counts = data['户型'].value_counts(normalize=True)
- value_counts() 是 pandas 中统计唯一值出现次数的方法
- normalize=True 参数返回的是比例而非绝对计数
- 结果是一个 Series,索引是户型类别,值是对应的占比(0-1之间)
- 这种统计方式适合展示类别数据的分布比例
👉饼图绘制
plt.pie(house_type_counts, # 数据labels=house_type_counts.index, # 标签autopct='%1.1f%%', # 百分比格式startangle=140, # 起始角度colors=plt.cm.tab20.colors # 颜色方案
)
- house_type_counts:占比数据
- labels:每个扇区对应的标签(户型名称)
- autopct=‘%1.1f%%’:在扇区上显示百分比,保留1位小数
- startangle=140:从140度开始绘制第一个扇区(顺时针方向)
- colors=plt.cm.tab20.colors:使用tab20色板的颜色
5.5 不同行政区的修类型分布情况
👉数据统计与透视
total_by_district = data.groupby('区')['装修类型'].value_counts(normalize=True) * 100
pivot_table = total_by_district.unstack(fill_value=0).fillna(0)
- groupby(‘区’)[‘装修类型’] 按行政区对装修类型分组
- value_counts(normalize=True) 计算每种装修类型的占比(0-1)
- *100 将比例转换为百分比(0-100)
- unstack() 将多级索引的Series转换为DataFrame(装修类型变为列)
- fill_value=0和fillna(0)确保没有数据的组合显示为0%
👉折线图绘制
for column in pivot_table:plt.plot(pivot_table.index, pivot_table[column], marker='o', label=column)
- 遍历DataFrame的每一列(每种装修类型)
- plt.plot()绘制折线图,参数包括:
- x轴数据:区域名称(pivot_table.index)
- y轴数据:装修占比(pivot_table[column])
- marker='o’在数据点显示圆形标记
- label=column设置图例标签
聚类分析
为了自动分类相似属性的房源,揭示市场细分结构,帮助理解不同群体的住房需求,评估房价合理性,为买家、卖家及投资者提供定制化信息和策略指导,同时也能洞察市场趋势,优化资源配置,提升决策效率与服务质量。我们对上海市的二手房数据进行聚类分析。
我们使用sklearn库中的KMeans聚类方法来对数据进行聚类工作。Scikit-learn(通常简称为sklearn)是一个开源的机器学习库,它构建于Python编程语言之上,是Python中最广泛使用的机器学习框架之一。
我们选取单价、总价、面积这三个数值型字段进行作为特征。在这之前,我们还需要对这三个字段的数据进行标准化操作。K-means等基于距离的聚类算法依赖于数据点间的距离计算。如果没有标准化,不同特征的量纲和大小可能导致计算出的距离失去实际意义。
数据准备与标准化
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScalerfeatures = ['单价(元/平米)', '总价(万)', '面积(平米)']
X = data[features]
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
- 数据标准化:使用
StandardScaler
对数据进行标准化处理(均值为0,方差为1) - 消除不同特征量纲的影响
- 使各特征对聚类结果的贡献度相同
- fit_transform():计算均值和标准差并立即应用转换
确定最佳聚类数量(肘部法则)
inertias = []
for i in range(1, 11):kmeans = KMeans(n_clusters=i, init='k-means++', random_state=42)kmeans.fit(X_scaled)inertias.append(kmeans.inertia_)
K-means参数:
- n_clusters:尝试1到10个聚类
- init=‘k-means++’:智能初始化聚类中心,加速收敛
- random_state=42:统一随机值,确保结果可复现
结论
本数据分析报告通过深入挖掘上海市二手房市场中的户型、单价、面积、总价以及区域分布,并结合聚类分析,揭示了市场的主要特征和潜在趋势。分析结果显示,上海市二手房市场呈现出明显的层次化和差异化特征,主要可分为三类群体:低价小户型、中价中型房、以及高价大户型,且这些群体在地理位置上也表现出特有的分布规律。
后记
本博客主要的代码参考原csdn付费文章——上海二手房数据分析
加上临近期末,于是把这个项目拆开总结成知识点共初学者学习
可以更好的加深对这门课的理解
所需源代码还请支持原作者!
原创不易,还请大家多多支持!
相关文章:

《数据挖掘》- 房价数据分析
这里写目录标题 采用的技术1. Python编程语言2. 网络爬虫库技术点对比与区别项目技术栈的协同工作流程 代码解析1. 导入头文件2. 读取原始数据3. 清洗数据4. 数据分割4.1 统计房屋信息的分段数量4.2 将房屋信息拆分为独立列4.3 处理面积字段4.4 删除原始房屋信息列 5. 可视化分…...
centos中的ulimit命令
centos中的ulimit命令 ulimit的作用CENTOS系统文件配置配置文件地址配置格式 配置方法 ulimit的作用 ulimit用于限制shell启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell进程创建文件的大小、内存锁住的…...
git提交代码和解决冲突修复bug
提交到分支的步骤如下: 确保你当前在开发分支上,可以使用命令 git branch 来查看当前所在分支,并使用 git checkout 命令切换到开发分支。使用 git add 命令将修改的文件添加到暂存区。使用 git commit 命令提交代码到本地仓库。 解决合并冲…...
华为仓颉语言初识:并发编程之同步机制(上)
前言 线程同步机制是多线程下解决线程对共享资源竞争的主要方式,华为仓颉语言提供了三种常见的同步机制用来保证线程同步安全,分别是原子操作,互斥锁和条件变量。本篇文章详细介绍主要仓颉语言解决同步机制的方法,建议点赞收藏&a…...
php中实现邮件发送功能
要在php项目中实现邮件发送功能,推荐使用phpmailer库通过smtp协议配置。首先安装phpmailer扩展,可通过composer命令composer require phpmailer/phpmailer安装;若未使用composer则手动引入源码。接着配置smtp信息,包括服务器地址&…...

C++之动态数组vector
Vector 一、什么是 std::vector?二、std::vector 的基本特性(一)动态扩展(二)随机访问(三)内存管理 三、std::vector 的基本操作(一)定义和初始化(二…...
arc3.2语言sort的时候报错:(sort < `(2 9 3 7 5 1)) 需要写成这种:(sort > (pair (list 3 2)))
arc语言sort的时候报错:(sort < (2 9 3 7 5 1)) arc> (sort < (2 9 3 7 5 1)) Error: "set-car!: expected argument of type <pair>; given: 9609216" arc> (sort < (2 9 3 )) Error: "Function call on inappropriate object…...
Android动态广播注册收发原理
一、动态广播的注册流程 1. 注册方式 动态广播通过代码调用 Context.registerReceiver() 方法实现,需显式指定 IntentFilter 和接收器实例: // 示例:在 Activity 中注册监听网络变化的广播 IntentFilter filter new IntentFilter…...
Ubuntu 系统通过防火墙管控 Docker 容器
Ubuntu 系统通过防火墙管控 Docker 容器指南 一、基础防火墙配置 # 启用防火墙 sudo ufw enable# 允许 SSH 连接(防止配置过程中断联) sudo ufw allow 22/tcp二、Docker 配置调整 # 编辑 Docker 配置文件 sudo vim /etc/docker/daemon.json配置文件内…...
AI 模型分类全解:特性与选择指南
人工智能(AI)技术正以前所未有的速度改变着我们的生活和工作方式。AI 模型作为实现人工智能的核心组件,种类繁多,功能各异。从简单的线性回归模型到复杂的深度学习网络,从文本生成到图像识别,AI 模型的应用…...

【Zephyr 系列 11】使用 NVS 实现 BLE 参数持久化:掉电不丢配置,开机自动加载
🧠关键词:Zephyr、NVS、非易失存储、掉电保持、Flash、AT命令保存、配置管理 📌目标读者:希望在 BLE 模块中实现掉电不丢配置、支持产测参数注入与自动加载功能的开发者 📊文章长度:约 5200 字 🔍 为什么要使用 NVS? 在实际产品中,我们经常面临以下场景: 用户或…...

【Android】Android Studio项目代码异常错乱问题处理(2020.3版本)
问题 项目打开之后,发现项目文件直接乱码, 这样子的 这本来是个Java文件,结果一打开变成了这种情况,跟见鬼一样,而且还不是这一个文件这样,基本上一个项目里面一大半都是这样的问题。 处理方法 此时遇到…...
n皇后问题的 C++ 回溯算法教学攻略
一、问题描述 n皇后问题是经典的回溯算法问题。给定一个 nn 的棋盘,要求在棋盘上放置 n 个皇后,使得任何两个皇后之间不能互相攻击。皇后可以攻击同一行、同一列以及同一对角线上的棋子。我们需要找出所有的合法放置方案并输出方案数。 二、输入输出形…...

一些免费的大A数据接口库
文章目录 一、Python开源库(适合开发者)1. AkShare2. Tushare3. Baostock 二、公开API接口(适合快速调用)1. 新浪财经API2. 腾讯证券接口3. 雅虎财经API 三、第三方数据平台(含免费额度)1. 必盈数据2. 聚合…...
DeepSeek本地部署及WebUI可视化教程
前言 DeepSeek是近年来备受关注的大模型之一,支持多种推理和微调场景。很多开发者希望在本地部署DeepSeek模型,并通过WebUI进行可视化交互。本文将详细介绍如何在本地环境下部署DeepSeek,并实现WebUI可视化,包括Ollama和CherryStudio的使用方法。 一、环境准备 1. 硬件要…...
机器学习算法时间复杂度解析:为什么它如此重要?
时间复杂度的重要性 虽然scikit-learn等库让机器学习算法的实现变得异常简单(通常只需2-3行代码),但这种便利性往往导致使用者忽视两个关键方面: 算法核心原理的理解缺失 忽视算法的数据适用条件 典型算法的时间复杂度陷阱 SV…...

SSIM、PSNR、LPIPS、MUSIQ、NRQM、NIQE 六个图像质量评估指标
评价指标 1. SSIM(Structural Similarity Index) 📌 定义 结构相似性指数(Structural Similarality Index)是一种衡量两幅图像相似性的指标,考虑了亮度、对比度和结构信息的相似性,比传统的 P…...

【笔记】旧版MSYS2 环境中 Rust 升级问题及解决过程
下面是一份针对在旧版 MSYS2(安装在 D 盘)中,基于 Python 3.11 的 Poetry 虚拟环境下升级 Rust 的处理过程笔记(适用于 WIN 系统 SUNA 人工智能代理开源项目部署要求)的记录。 MSYS2 旧版环境中 Rust 升级问题及解决过…...
centos查看开启关闭防火墙状态
执行:systemctl status firewalld ,即可查看防火墙状态 防火墙的开启、关闭、禁用命令 (1)设置开机启用防火墙:systemctl enable firewalld.service (2)设置开机禁用防火墙:system…...
[论文阅读] 人工智能 | 大语言模型计划生成的新范式:基于过程挖掘的技能学习
#论文阅读# 大语言模型计划生成的新范式:基于过程挖掘的技能学习 论文信息 Skill Learning Using Process Mining for Large Language Model Plan Generation Andrei Cosmin Redis, Mohammadreza Fani Sani, Bahram Zarrin, Andrea Burattin Cite as: arXiv:2410.…...
MS31912TEA 多通道半桥驱动器 氛围灯 照明灯 示宽灯 转向灯驱动 后视镜方向调节 可替代DRV8912
MS31912TEA 多通道半桥驱动器 氛围灯 照明灯 示宽灯 转向灯驱动 后视镜方向调节 可替代DRV8912 产品简述 MS31912 是集成多种高级诊断功能的多通道半桥驱动。 MS31912 具有 12 个半桥,典型工作电压 13.5V 下,每一个半桥支持 1A 电流,典型工…...
软考 系统架构设计师系列知识点之杂项集萃(84)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(83) 第151题 在软件系统工具中,版本控制工具属于(),软件评价工具属于()。 第1空 A. 软件开发工具 B. 软件维…...

矩阵QR分解
1 orthonormal 向量与 Orthogonal 矩阵 orthonormal 向量定义为 ,任意向量 相互垂直,且模长为1; 如果将 orthonormal 向量按列组织成矩阵,矩阵为 Orthogonal 矩阵,满足如下性质: ; 当为方阵时&…...
UDP与TCP的区别是什么?
UDP和TCP是互联网通信中最常用的两种传输层协议,它们在数据传输方式、可靠性、速度和适用场景等方面存在显著差异。本文将围绕UDP与TCP的核心区别展开详细分析,包括连接方式、数据传输机制、传输效率以及各自适合的应用场景,帮助开发者和网络…...
撰写脚本,通过发布/joint_states话题改变机器人在Rviz中的关节角度
撰写脚本,通过发布/joint_states话题改变机器人在Rviz中的关节角度 提问 为我写一个改变关节base_spherical_center_high_joint角度的python脚本吧。适用于ROS2的humble 回答 下面是一个适用于 ROS 2 Humble 的 Python 脚本,它会以指定频率持续发布 …...
AOP实现Restful接口操作日志入表方案
文章目录 前言一、基础资源配置1.操作日志基本表[base_operation_log] 见附录1。2.操作日志扩展表[base_operation_log_ext] 见附录2。3.定义接口操作系统日志DTO:OptLogDTO4.定义操作日志注解类WebLog5.定义操作日志Aspect切面类SysLogAspect6.定义异步监听日志事件…...

【MATLAB去噪算法】基于CEEMDAN联合小波阈值去噪算法(第四期)
CEEMDAN联合小波阈值去噪算法相关文献 一、EMD 与 EEMD 的局限性 (1)EMD (经验模态分解) 旨在自适应地将非线性、非平稳信号分解成一系列 本征模态函数 (IMFs),这些 IMFs 从高频到低频排列。 核心问题:模态混合 (Mode Mixing) 同…...
Webhook 配置备忘
本文地址:blog.lucien.ink/archives/552 将下列代码保存为 install.sh,然后 bash install.sh。 #!/usr/bin/env bash set -e wget https://github.mirrors.lucien.ink/https://github.com/adnanh/webhook/releases/download/2.8.2/webhook-linux-amd64.…...

从理论崩塌到新路径:捷克科学院APL Photonics论文重构涡旋光技术边界
理论预言 vs 实验挑战 光子轨道角动量(Orbital Angular Momentum, OAM)作为光场调控的新维度,曾被理论预言可突破传统拉曼散射的对称性限制——尤其是通过涡旋光(如拉盖尔高斯光束)激发晶体中常规手段无法探测的"…...
机器学习笔记【Week7】
一、SVM的动机:大间隔分类器 1、逻辑回归回顾 假设函数为 sigmoid 函数: h θ ( x ) 1 1 e − θ T x h_\theta(x) \frac{1}{1 e^{-\theta^Tx}} hθ(x)1e−θTx1 分类依据是 h θ ( x ) ≥ 0.5 h_\theta(x) \geq 0.5 hθ(x)≥0.5 为正类&a…...