Java Projects – Perceiving Group Shilling Attacks in Operational Recommender Systems Based on Bisecting K-Means Clustering

shilling-attack

 

Request for  Project –   [email protected] ; [email protected] ;[email protected]

Contact Number – 7667668009 / 7667664842

Whatsapp  Number – 7667668009 / 7667664842

For complete project lists  –  final year project for cse

For internship – internship in chennai   &  inplant training in  chennai

ABSTRACT:

Existing shilling attack detection approaches focus mainly on identifying individual attackers in online recommender systems and rarely address the detection of group shilling attacks in which a group of attackers colludes to bias the output of an online recommender system by injecting fake profiles. In this project, we propose a group shilling attack detection method based on the bisecting K-means clustering algorithm. First, we extract the rating track of each item and divide the rating tracks to generate candidate groups according to a fixed time interval. Second, we propose item attention degree and user activity to calculate the suspicious degrees of candidate groups. Finally, we employ the bisecting K-means algorithm to cluster the candidate groups according to their suspicious degrees and obtain the attack groups. The results of experiments on the Netflix and Amazon data sets indicate that the proposed method outperforms the baseline methods.

Existing system :

  • Zhou et al. improved the individual shilling attack detection metrics and proposed a two-step method to detect group shilling attacks. While this method is effective for detecting group attacks in synthetic data sets, it is not effective in detecting group attacks with a low similarity between attackers.
  • Wang et al. improved several traditional features and proposed a method for group attack detection based on these features.
  • They first manually labeled candidate groups with high minimum support, and thereafter, they computed the group metrics and employed PCA to rank the candidate groups. Unfortunately, this method is only suitable for detecting group attacks whose shilling profiles have high similarity.
  • For Java further details prefer Java Course , Java Internship , Java Training in Chennai .

Proposed system :

  • We propose a method to detect group shilling attacks in online recommender systems through bisecting K-means clustering. The major contributions of this article are listed as follows.
  • We propose a candidate group division method, which first mines the rating tracks of items and then divides the users in the item rating tracks (IRTs) into multiple groups according to a certain length of time. Since the attackers in an attack group must rate the target item(s) within a certain period of time, the proposed candidate group division method is more likely to divide the attackers in an attack group together, which can lay a good foundation for the group shilling attack detection.
  • We propose metrics of item attention degree and user activity (UA) to analyze the candidate groups, making the judgment of attack groups more accurate. Based on the divided candidate groups, the item attention degree and the UA for each candidate group are calculated, and the suspicious degrees of these groups are obtained. Based on this, the bisecting K-means algorithm is employed to cluster the candidate groups according to their suspicious degrees, and the attack groups are obtained.
  • To evaluate the performance of our method, we conduct experiments on the Netflix and Amazon data sets and compare the proposed method with four baseline methods.

SOFTWARE REQUIREMENTS  

        Platform  : Java – Java Course , Java Internship , Java Training in Chennai

        Operating system : Windows 10.

        Coding Language  : JAVA.

        Tool :  Netbeans 8.2 and above

        Database : MYSQL or SQL Server

HARDWARE REQUIREMENTS  

        System : Pentium i3 Processor

        Hard Disk : 500 GB.

        Monitor :  15’’ LED

        Input Devices : Keyboard, Mouse

        Ram  : 2GB

 

In case of learning these technologies, you can opt for

Sample Code for – Java Projects

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ObjectAccess;
namespace PrivacyPresering
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();
}
ObjectAccess.ConnectDB dbObject = new ConnectDB();
private void NewUserFormControlTransfer(object sender, System.EventArgs e)
{
NewUserForm NUF = new NewUserForm();
NUF.Show();
this.Hide();
}
private void LoginSuccessAdmin(object sender, System.EventArgs e)
{

}
private void LoginSuccessDatOwner(object sender, System.EventArgs e)
{

IntermediateForm IF = new IntermediateForm();
IF.Show();
//AliceAnonymousUpdates AAU = new AliceAnonymousUpdates();
//AAU.Show();
this.Hide();
}
private void LoginSuccessDataUpdater(object sender, System.EventArgs e)
{

BobAnonymousUpdate BA = new BobAnonymousUpdate();
BA.Show();
this.Hide();

}
private void LoginSuccessAnonymousUser(object sender, System.EventArgs e)
{

//AnonymousConnection AC = new AnonymousConnection();
//AC.Show();
//this.Hide();

}
private void Login_Load(object sender, EventArgs e)
{ }

private void loginControl1_Load(object sender, EventArgs e)
{ }

} }

AliceAnonymousUpdates.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ObjectAccess;
using System.IO;
using System.Security.Cryptography;

using System.Security.Cryptography.Xml;
using System.Xml;

using System.Collections;

namespace PrivacyPresering
{
public partial class AliceAnonymousUpdates : Form
{
public AliceAnonymousUpdates()
{
InitializeComponent();
}
ObjectAccess.ConnectDB dbObject = new ConnectDB();
GenericTable Generics = new GenericTable();
private void AliceAnonymousUpdates_Load(object sender, EventArgs e)
{
dgProduct.DataSource = dbObject.GetProduct();
}

private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable(Generics.NameGenerics());
dt.Columns.Add(“Id”);
dt.Columns.Add(“name”);
dt.Columns.Add(“value”);
string id, name, value;

int count = dgProduct.Rows.Count, initial = 0;
foreach (DataGridViewRow dgvr in dgProduct.Rows)
{

if (count > initial + 1)
{
id = dgvr.Cells[“id”].Value.ToString();
name = dgvr.Cells[“name”].Value.ToString();
value = dgvr.Cells[“value”].Value.ToString();
DataRow dr = dt.NewRow();
dr[0] = id;
dr[1] = EncryptFunction(name, dt.TableName);
dr[2] = EncryptFunction(value, dt.TableName);
dt.Rows.Add(dr);
initial++;
}
}

StreamWriter xml = new StreamWriter(@”C:tempPrivacy.xml”);
dt.WriteXml(xml);
xml.Close();
XMLContent.Url = new Uri(@”C:tempPrivacy.xml”);
}
public string EncryptFunction(string input, string TableName)
{
byte[] inputArray = UTF8Encoding.UTF8.GetBytes(input);
TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
string aa = TableName;
tripleDES.Key = UTF8Encoding.UTF8.GetBytes(aa);
tripleDES.Mode = CipherMode.ECB;
tripleDES.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = tripleDES.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
tripleDES.Clear();
string myEncrptedText = Convert.ToBase64String(resultArray, 0, resultArray.Length);

return myEncrptedText;
}

private void button2_Click(object sender, EventArgs e)
{
try
{

CspParameters cspParams = new CspParameters();
cspParams.KeyContainerName = “XML_DSIG_RSA_KEY”;
RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider(cspParams);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.PreserveWhitespace = true;
xmlDoc.Load(@”C:tempPrivacy.xml”);

SignXml(xmlDoc, rsaKey);

xmlDoc.Save(@”C:tempPrivacy.xml”);
xmlDoc.Save(@”C:tempInitialSent.xml”);
webBrowser1.Url = new Uri(@”C:tempPrivacy.xml”);

}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
} }
public static void SignXml(XmlDocument xmlDoc, RSA Key)
{

if (xmlDoc == null)
throw new ArgumentException(“xmlDoc”);
if (Key == null)
throw new ArgumentException(“Key”);
SignedXml signedXml = new SignedXml(xmlDoc);
signedXml.SigningKey = Key;
Reference reference = new Reference();
reference.Uri = “”;
XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
reference.AddTransform(env);
signedXml.AddReference(reference);
signedXml.ComputeSignature();
XmlElement xmlDigitalVerification token = signedXml.GetXml();
xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true));

}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Login login = new Login(); login.Show(); this.Hide();
}

private void button3_Click(object sender, EventArgs e)
{
AmendData AD = new AmendData();
AD.Show();

}

private void button4_Click(object sender, EventArgs e)
{
dgProduct.DataSource = dbObject.GetProduct();
}

private void dgProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
{ }

} }

Java Projects – Screenshots :

java-shilling-attach

Request for  Project –   [email protected] ; [email protected] ;[email protected]

Contact Number – 7667668009 / 7667664842

Whatsapp  Number – 7667668009 / 7667664842

For complete project lists  –  final year project for cse

For internship – internship at chennai   &  inplant training in  chennai

× How can I help you?