课程设计——博客作业教学数据分析系统(201521123084 李嘉廉)


1.团队课程设计博客链接

博客作业教学数据分析系统

2.个人负责模块或任务说明

  • 數據分析
  • Kmeans聚類算法實現
  • 多元綫性回歸算法實現
  • 部分前端實現

3.自己的代码提交记录截图

4.自己负责模块或任务详细说明

(1)KMeans聚类

这是我负责的算法实现的一个模块,总结一下,数据聚类是将没有类别参考的数据进行分析,并划分为不同的组,即直接从这些数据中导出类标号。聚类分析本身则是根据数据来发掘数据对象及其关系信息,并将这些数据分组。关于这些数据的具体类别一开始并没有任何参考,例如该怎么聚类,聚成多少类,都没人知道,我们称之为无监督学习。

代码有借鉴

public void doIteration(ArrayList<Node> centroid) {

	int cnt = 1;
int cntEnd = 0;
int numLabel = centroid.size();
while (true) {// 迭代,直到所有的质心都不变化为止
boolean flag = false;
for (int i = 0; i < arrayList.size(); ++i) {
double dis = 0x7fffffff;
cnt = 1;
for (int j = 0; j < centroid.size(); ++j) {
Node node = centroid.get(j);
if (getDistance(arrayList.get(i), node) < dis) {
dis = getDistance(arrayList.get(i), node);
arrayList.get(i).label = cnt;
}
cnt++;
}
}
int j = 0;
numLabel -= 1;
while (j < numLabel) {
int c = 0;
Node node = new Node();
for (int i = 0; i < arrayList.size(); ++i) {
if (arrayList.get(i).label == j + 1) {
for (int k = 0; k < dimension; ++k) {
node.attributes[k] += arrayList.get(i).attributes[k];
}
c++;
}
}
double[] attributelist = new double[dimension];
for (int i = 0; i < dimension; ++i) {
attributelist[i] = node.attributes[i] / c;
if (attributelist[i] != centroid.get(j).attributes[i]) {
centroid.get(j).attributes[i] = attributelist[i];
flag = true;
}
}
if (!flag) {
cntEnd++; // 若所有的质心都不变,则跳出循环
if (cntEnd == numLabel) {
break;
}
}
j++;
} // 若所有的质心都不变,则 success
if (cntEnd == numLabel) {
break;
}
}
}

(2)多元线性回归

首先介绍一下多元线性回归的算法:

假设有 共n个feature

拟合函数



代价函数



它的功能主要是通过给定的训练数据集,拟合出一个线性模型,进而对新数据做出预测。通过最小化代价函数来求得值,一般优化的方法有两种,第一是梯度下降算法(Gradient Descent),第二种是正规方程法(The normal equations)。 我们选用的是第一种算法。

// 训练样本得到参数值
public void trainTheta() {
int iteration = this.iteration;
while ((iteration--) > 0) {
// 计算每个theta的偏导
// partialDerivative := sum(...) / m
double[] partialDerivative = computePartialDerivative(); // 更新每个theta,同时更新
for (int i = 0; i < theta.length; i++) {
theta[i] -= alpha * partialDerivative[i];
}
}
}

5.课程设计感想

作为组长,不仅仅是负责好自己的模块,更重要的是团队的协调合作。不过,幸运的是,找到的这群队友都通力配合、齐心协力,所以即使是在这么赶的情况下,我们还是如愿完成了基本的功能。

使用Java实现了一些基本算法,还行,但是不是很好,有部分是借鉴别人的。

时间特别紧,来不及呈现更好的作品,身为团队负责人深感抱歉。

Java课程设计——博客作业教学数据分析系统(201521123091 李嘉廉)的更多相关文章

  1. Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)

    Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...

  2. Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)

    #课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...

  3. java课程设计——博客作业教学数据分析系统(201521123083 戴志斌)

    目录 一.团队课程设计博客链接 二.个人负责模块或任务说明 三.自己的代码提交记录截图 四.自己负责模块或任务详细说明 五.课程设计感想 (题外话,终于可以用markdown建目录) 一.团队课程设计 ...

  4. Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)

    #Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...

  5. Java课程设计博客(个人)

    Java课程设计博客(个人) 1. 团队课程设计博客链接 http://www.cnblogs.com/wkfg/p/7063081.html 2. 个人负责模块或任务说明 负责模块/任务:编写doG ...

  6. Java课程设计博客(团队)

    Java课程设计博客(团队) 1. 团队/项目名称 使用JAVA实现简易HTTP服务器 2. 团队成员 组长:林一心 组员:张杭镖 3. 项目git地址 https://github.com/oran ...

  7. Java第二次博客作业

    Java第二次博客作业 时间过的很快啊,在不知不觉中这门课程的学习也就快要过去一半了,现在就来总结一下在这个第二个月的学习当中存在的问题以及得到的心得. 1.前言 第四次题目集和第五次题目集给我的感觉 ...

  8. OO--第三单元规格化设计 博客作业

    OO--第三单元规格化设计 博客作业 前言 第三单元,我们以JML为基础,先后完成了 PathContainer -> Graph -> RailwaySystem 这是一个递进的过程,代 ...

  9. 团队作业1——团队展示&博客作业查重系统

    团队展示: 1.队名:六个核桃 2.队员学号: 王婧(201421123065).柯怡芳(201421123067组长).陈艺菡(201421123068). 钱惠(201421123071).尼玛( ...

随机推荐

  1. ZooKeeper笔记——技术点汇总

    目录 · ZooKeeper安装 · 分布式一致性理论 · 一致性级别 · 集中式系统 · 分布式系统 · ACID特性 · CAP理论 · BASE理论 · 一致性协议 · ZooKeeper概况 ...

  2. Spring中各jar包的作用

    Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合 Spring Beans:Spring ...

  3. 【NO.3-2】Jmeter - 在Linux配置HOSTS的方法

    在Linux配置HOSTS 咱平时在Windows系统做web测试的时候需要修改HOSTS文件.Linux也一样. /*在Linux执行性能测试的时候,很容易忘记配置HOSTS,那么你发送的请求的响应 ...

  4. Git基础命令的使用

    当前git版本: git version 2.9.2.windows.1 1.创建一个能与git服务器连接的本地git库 本地:  git init git status (-s) git add . ...

  5. localStorage与sessionStorage区别

    localStorage与sessionStorage区别:浏览器正常模式下:    关闭浏览器或该窗口标签时,localStorage数据依然保存,但是sessionStorage数据会被清除.   ...

  6. XP oracle32位客户端安装找不到orandce11.dll.dbl

    同事在XP上装oracle客户端,遇到下面的问题,mark一下. 提示找不到:orandce11.dll.dbl 点继续还会提示这个文件:orancds11.dll.dbl 网上找到解决方法: 删除注 ...

  7. Python 接口:从协议到抽象基类

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica } 抽象基类的常见用途:实现接口时作为超类使用.然后,说明抽象基类如何检查 ...

  8. CORS跨域资源共享你该知道的事儿

    "唠嗑之前,一些客套话" CORS跨域资源共享,这个话题大家一定不陌生了,吃久了大转转公众号的深度技术好文,也该吃点儿小米粥溜溜胃里的缝儿了,今天咱们就再好好屡屡CORS跨域资源共 ...

  9. vue.js移动端app实战3:从一个购物车入门vuex

    什么是vuex? 官方的解释是:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 简单来说就 ...

  10. 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一

    首先说一下为什么写这篇文章,因为从正式参加工作就做javaweb开发,一路走来,碰到了很多的问题,每次问题都想从度娘那里得到准确的答案,但是,每个人遇到的问题不尽相同,问题的解决方案有时候也只是仅供参 ...